官方:https://docs.locust.io/en/stable/installation.html
浏览器输入:http://localhost:8089/
继承TaskSet类,那么对应里面的方法是并行执行的,继承SequentialTaskSet类,那么对应里面的方法是串行执行的。
场景一测试项目执行前会执行一次SETUP,测试项目结束后会执行一次TEARDOWN。
模拟3个用户并发请求网页,共有100个URL地址,每个虚拟用户都会依次循环加载100个URL地址
模拟3用户并发注册账号,共有9个账号,要求注册账号不重复,注册完毕后结束测试
概括:
保证并发测试数据唯一性,不循环取数据
>>>所有并发虚拟用户共享同一份测试数据,并且保证虚拟用户使用的数据不重复;代码
采用队列场景三复制代码
- <font size="3" color="#000000">
- # -*- coding: utf-8 -*-
- """
- @ auth : carl_DJ 来自博主 这里使用了队列
- @ time : 2020-9-23
- """
- from locust import TaskSet, task, HttpUser
- import queue
- class UserBehav(TaskSet):
- @task
- def test_register(self):
- try:
- data = self.user.user_data_queue.get()
- # data = self.locust.user_data_queue.get()
- except queue.Empty:
- print('account data run out, test ended.')
- exit(0)
- print('register with user: {}, pwd: {}'\
- .format(data['username'], data['password']))
- payload = {
- 'username': data['username'],
- 'password': data['password']
- }
- self.client.post('/register', data=payload)
- class WebsiteUser(HttpUser):
- host = 'http://www.xxx.com'
- task_set = task(UserBehav)
- user_data_queue = queue.Queue()
- for index in range(100):
- data = {
- "username": "test%04d" % index,
- "password": "pwd%04d" % index,
- "email": "test%04d@debugtalk.test" % index,
- "phone": "186%08d" % index,
- }
- user_data_queue.put_nowait(data)
- min_wait = 1000
- max_wait = 15000</font>
模拟3个用户并发登录账号,总共有9个账号,要求并发登录账号不相同,但数据可循环使用;
概括:
保证并发测试数据唯一性,循环取数据;
>>>所有并发虚拟用户共享同一份测试数据,保证并发虚拟用户使用的数据不重复,并且数据可循环重复使用转自:http://t.csdn.cn/IWo2a复制代码
- <font size="3" color="#000000"># -*- coding: utf-8 -*-
- """
- @ auth : carl_DJ 来自博主 收藏学习
- @ time : 2020-9-23
- """
- from locust import TaskSet, task, HttpUser
- import queue
- class UserBehav(TaskSet):
- @task
- def test_register(self):
- try:
- data = self.user.user_data_queue.get()
- # data = self.locust.user_data_queue.get()
- except queue.Empty:
- print('account data run out, test ended')
- exit(0)
- print('register with user: {0}, pwd: {1}' .format(data['username'], data['password']))
- payload = {
- 'username': data['username'],
- 'password': data['password']
- }
- self.client.post('/register', data=payload)
- self.user.user_data_queue.put_nowait(data)
- # self.locust.user_data_queue.put_nowait(data)
- class WebsiteUser(HttpUser):
- host = 'http://www.xxx.com'
- task_set = task(UserBehav)
- user_data_queue = queue.Queue()
- for index in range(100):
- data = {
- "username": "test%04d" % index,
- "password": "pwd%04d" % index,
- "email": "test%04d@debugtalk.test" % index,
- "phone": "186%08d" % index,
- }
- user_data_queue.put_nowait(data)
- min_wait = 1000
- max_wait = 15000</font>
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) | Powered by Discuz! X3.2 |