通过使用@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
运行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标签装饰器的解析和案例说明。
微信公众号:玩转测试开发
欢迎关注,共同进步,谢谢!
网友评论