0
点赞
收藏
分享

微信扫一扫

压力测试-Locust框架基本使用及更新报错解决方案

SPEIKE 2022-10-18 阅读 80

近期了解到locust在1.0版本之后出现了部分的改动,使用最新locustio加载时可能会出现一些问题,本文将讲述locust的使用基础及常见的环境异常。

******【环境方面】******


******新旧版本使用过程中主要变化点******

1、早期版本(0.14.6之前)使用Min_wait=xxx和Max_wait=xxx来设置每个虚拟用户的创建间隔时间,实践过程中发现此方法虽然没有报错但似乎已经失效,替代方案为:

wait_time = constant(5)
#放在用户类中使用,间隔等待时间,需要提前导包

2、1.0之后版本的locustio,不能再使用名称task_set来实例化,需将其替换为task_create或其它名称,不与其重名即可。

3、1.0之后版本的locustio在定义用户类时不可以再继承HttpLocust,需继承HttpUser类,此改动也需要将导包的位置进行修改,必须先确保是1.0之后的locustio才需要这样修改 ,查询当前locust版本命令:locust -V

locust -V
#查询当前locust版本,V是大写的

******基础结构使用******

基本框架结构: 

from locust import TaskSet, HttpLocust, task, constant
#导包  1.0之后版本需把HttpLocust替换为HttpUser
class Task01(TaskSet):
#定义用户集
    @task(x)
    #任务(比重)
    def task_01(self):
        self.json_data = {
            "x": 1,
            "x": 1,
            "x": "123",
            "x": "456",
            "x": 1
        }
        self.Token = "x"
        #Token
        self.new_headers = {"Authorization-Token": self.Token, "Content-Type": "application/json"}
        self.response= self.client.post("/path", json=self.json_data,
                                          headers=self.new_headers)
        status_code= self.response.status_code
        res_json = self.response1.json()
        print("响应数据为:{},状态码为:{}".format(res_json, status_code))
    @task(x)
    #任务(比重)
    def task_02(self):
        pass
    ······
class Administrator(HttpLocust):
#定义用户类 1.0之后版本需把HttpLocust替换为HttpUser
    task_set = Task01
    #1.0之后版本不能用task_set命名
    wait_time = constant(x)
    host = "http://192.168.x.x:xxxx"

启动方法:

Terminal:locust -f xx.py (二级目录的话先cd到最后一层)

通过指定端口号访问127.0.0.1:端口号

注:如果127.0.0.1无效,则使用localhost替代

分布式配置方法:

在其它机器上部署相同的环境及文件后,使用如下命令来进行角色分配

locust -f xx.py --master
#控制机

locust -f xx.py --slave --master-host=控制机IP
#执行机

关注我,不迷路

******本文相关专栏******

软件测试-压力测试专栏(点击进入)


  ******我的其它作品专栏******

PC常见故障汇总专栏(点击进入)

EXCEL综合场景应用详解(点击此处进入)

全国计算机等级考试-二级python基础(点击此处进入)

举报

相关推荐

0 条评论