locust2.0+教程:006 - @tag标签装饰器

2021-09-03  本文已影响0人  玩转测试开发

通过使用@tag decorator标记任务,可以使用--tags和--exclude tags参数来挑剔测试期间执行的任务,主要作用就是剔除和筛选任务。
以下文源码为例。
1、命令行执行时加入--tags tag1,则表示只执行对应的hello方法任务。
2、命令行执行时加入--exclude-tags tag3,则表示除了tag
3,其他都执行,即执行对应的hello和new方法任务。

locust脚本源码:my_locust.py 请注意task是不可省略的装饰,缺少则没有需要执行的任务。

from locust import HttpUser, between, tag, task


class QuickstartUser(HttpUser):
    wait_time = between(1, 2)

    @tag("tag1")
    @task
    def hello(self):
        self.client.get("/hello")

    @tag("tag2")
    @task
    def new(self):
        self.client.get("/new")

    @tag("tag3")
    @task
    def world(self):
        self.client.get("/world")

服务端sanic源码:main.py


from sanic import Sanic
import datetime
from sanic import response

app = Sanic('myapp')


@app.get('/hello')
def hello(request):
    time = str(datetime.datetime.now())[:-7]
    return response.json({"hello time": time})


@app.get('/new')
def new(request):
    time = str(datetime.datetime.now())[:-7]
    return response.json({"new time": time})


@app.get('/world')
def world(request):
    time = str(datetime.datetime.now())[:-7]
    return response.json({"world time": time})


if __name__ == "__main__":
    app.run(host="127.0.0.1", port=7890, auto_reload=True)

运行1:
1、命令行执行:locust -f my_locust.py --tags tag1
2、打开http://localhost:8089/
3、用户数,孵化率,host分别输入1,1,http://127.0.0.1:7890
4、点击运行服务端:可见只执行了hello.

图片

客户端:

图片

locust-ui:效果1

image.png

运行2:
1、命令行执行:locust -f my_locust.py --exclude-tags tag3
2、打开http://localhost:8089/
3、用户数,孵化率,host分别输入1,1,http://127.0.0.1:7890
4、点击运行

图片

locust-ui:效果2

图片

以上,即@tag标签装饰器的解析和案例说明。

微信公众号:玩转测试开发
欢迎关注,共同进步,谢谢!

上一篇下一篇

猜你喜欢

热点阅读