美文网首页
参数化的例子

参数化的例子

作者: HC2 | 来源:发表于2021-06-27 16:12 被阅读0次
from locust import HttpLocust, TaskSet, task,events
import queue
from random import randint
class UserBehavior(TaskSet):

    def on_start(self):

        try:
            data = self.locust.queueData.get()  # 获取队列里的数据
            print(data)
        except queue.Empty:

            # 队列取空后,直接退出
            print('no data exist')
            exit(0)

        print('actually user and password is {} '.format(data['username']))

        self.mobile = data['username']

        password = "e10adc3949ba59abbe56e057f20f883e"
        param = {"mobile": self.mobile, "password": password}
        headers = {"Content-Type": "application/json", "app_id": "101"}
        with self.client.post('https://xxx-xxx.xxx.com/xxxxxx', json=param, headers=headers) as response:
            if response.status_code == 200:
                self.token = response.json()["result"]["access_token"]

        self.header = {
            "access_token": self.token
        }
        print("========================================================登录",self.mobile)



    @task(3)
    def test1(self):

        url = 'https://xxx-xxx.xxx.com/xxxxxx'
        param = {
            "limit":5,
            "offset":0
        }
        with self.client.get(url,params=param,headers=self.header,catch_response = True) as response:
            if response.json()['code'] == 0:
                response.success()
            else:
                response.failure('Failed!')

    @task(1)
    def test2(self):
        '''用户执行下一页操作,占总操作次数的五分之一'''

        url = 'https://xxx-xxx.xxx.com/xxxxxx'
        param = {
            "limit": 5,
            "offset": 5
        }
        with self.client.get(url, params=param, headers=self.header, catch_response=True) as response:
            if response.json()['code'] == 0:
                response.success()
            else:
                response.failure('Failed!')

    @task(1)
    def test3(self):
        '''用户执行下一页操作,占总操作次数的五分之一'''

        url = 'https://xxx-xxx.xxx.com/xxxxxx'
        param = {
            "limit": 5,
            "offset": 10
        }
        with self.client.get(url, params=param, headers=self.header, catch_response=True) as response:
            if response.json()['code'] == 0:
                response.success()
            else:
                response.failure('Failed!')



class WebsiteUser(HttpLocust):
    host = 'https://test-xxxx.com/'
    task_set = UserBehavior
    queueData = queue.Queue()  # 队列实例化
    for count in range(0,2):   # 循环数据生成
        data = {
            "username": str(13729546445 + count)
        }
        queueData.put_nowait(data)
    min_wait = 1000
    max_wait = 1000

注意 队列的 queue.Queue() 数量必须大于或者等于最大并发数,否则最多并发数不准确

相关文章

  • 参数化的例子

    注意 队列的 queue.Queue() 数量必须大于或者等于最大并发数,否则最多并发数不准确

  • JMeter(3) 参数化请求

    参数化请求url 配置用户参数服务器设置,读取参数值用户参数里面设置参数具体值 参数化请求参数 函数助手参数化例子...

  • 函数柯里化

    定义 多个参数的传入 把他转成n个函数 可以暂存变量 例子: 柯里化判断 数据类型(参数复用的场景)

  • tensorboardX 可视化

    记录使用 tensorboardX 可视化训练参数,loss等.例子: 可以看到在 scalar 的目录下产生了...

  • [Effective Java] Item 26: Favor

    Item 26告诉我们要优先考虑泛型。 原因 比如下面的例子里,在参数化collection的时候: 在上面的例子...

  • 网络爬虫(十七)selenium 无可视化界面

    selenium无可视化界面,下面是例子代码,通过设置参数option实现。from selenium impor...

  • Pytest和Allure测试框架-超详细版+实战4

    四,参数化与数据驱动框架实现 参数化1 参数化2: 单个参数附上多个值 参数化3: 多个参数的 参数化4: 登录参...

  • setTimeout 第三个参数

    setTimeout 中第三个参数及以后的参数都可以作为func函数的参数 例子: 例子2:

  • 3.0查看任务

    描述: 输入参数: 参数类型: application/json 例子: 返回参数: 参数类型: applicat...

  • 测试markdown表格 发现不支持表格

    #测试markdown表格 get:请求参数 |参数名|参数变量|参数值(例子) |备注| | ------...

网友评论

      本文标题:参数化的例子

      本文链接:https://www.haomeiwen.com/subject/fofcoctx.html