locust性能测试,自动化测试工程师装X神器

简介: locust性能测试,自动化测试工程师装X神器

 

#coding:utf-8importrequests,json,time,queueimportgeventfromlocustimportHttpUser, TaskSet, task# 定义每个用户的任务集合classperformance(TaskSet):
# 任务A--GET示例@task(1)
defManagement_entry(self):
# 管理人员录入sstimestr=time.strftime("%Y%m%d%H%M%S")
sstime=time.strftime("%Y-%m-%d %H:%M:%S")
#print("获取:",self.parent.queue_data.get())for_num="guanliry"+str(self.parent.Management_entry_data.get())
url="接口地址"data= {
"appid": "10086",
"timestamp": "1627378948605",
"sign": "qwer",
"persons": [{
"personName": for_num,
"effTime": sstime,
"phone": "15110102020",
"email": "7777777@qq.com",
"picBase64": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxxxxxxxxcasdcascassacasdcawdsadasdsaccc",
"personCode": for_num                }]
            }
withself.client.post(url=url, json=data, verify=False,
catch_response=True) asresponse:
ifresponse.status_code!=200:
response.failure('Failed!')
print("管理人员录入失败", response.json())
else:
response.success()
print("管理人员录入", response.json())
@task(1)
defmmmmmmm(self):
# 隔离人员录入sstimestr=time.strftime("%Y%m%d%H%M%S")
sstime=time.strftime("%Y-%m-%d %H:%M:%S")
#print("获取:",self.parent.queue_data.get())for_num="gelirenyuan"+str(self.parent.Household_entry_data.get())
url="接口地址"data= {
"appid": "10086",
"timestamp": "1627378948605",
"sign": "qwer",
"persons": [{
"personName": for_num,
"effTime": sstime,
"phone": "15110102020",
"email": "7777777@qq.com",
"picBase64": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxxxxxxxxcasdcascassacasdcawdsadasdsaccc",
"personCode": for_num,
"grantType": 0                }]
            }
print("测试",data)
withself.client.post(url=url, json=data, verify=False,
catch_response=True) asresponse:
ifresponse.status_code!=200:
response.failure('Failed!')
print("隔离录入失败", response.json())
else:
response.success()
print("隔离人员录入", response.json())
# 继承Locust类# 生成的每一个虚拟的HTTP用户# 用来发送请求到进行负载测试的系统classLogin(HttpUser):
tasks= [performance]
# 权重weight=1# 执行事务之间用户最小等待时间min_wait=1000# 执行事务之间用户最大等待时间max_wait=3000# 超时时间stop_timeout=5host="ip:端口"#这里是填写需要测试的ip地址Management_entry_data=queue.Queue()#queue函数参数化测试数据Household_entry_data=queue.Queue()queue函数参数化测试数据foriinrange(100000):
user=inum=i#print(user)Management_entry_data.put_nowait(user)
Household_entry_data.put_nowait(num)
if__name__=='__main__':
importosos.system("locust -f locust_test.py --web-host=0.0.0.0")

image.gif

主要是搜索全网现在不怎么能看到locust的博客了,所以写一份最新的供大家探讨研究,咱们写代码的测试还是要有拿得出手的性能测试脚本,如果写的不好还望大家多多包涵

@task()装饰器是用来控制测试接口的如需要测试多个task则使用多个task即可


打开对应地址生成页面,第一行是用户总数,第二行是生成率,第三行是你代码中填写的测试地址。

点击start开始运行

image.gif

下方图片显示运行中的数据,这就跟jmeter一致

image.gif

测试报告输出:在最后一栏里可以根据需求导出测试报告,也可以在线查看只要能访问你的端口即可image.gif

如果单台电脑测试无法满足大数量人员,可以采用分布式压测。详情请看我的另一个博客

目录
相关文章
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
471 11
|
3月前
|
前端开发 测试技术 API
测试金字塔:别再只盯着UI自动化了
测试金字塔:别再只盯着UI自动化了
407 116
|
3月前
|
敏捷开发 测试技术 API
测试金字塔:构建高效自动化测试策略的基石
测试金字塔:构建高效自动化测试策略的基石
319 116
|
3月前
|
人工智能 自然语言处理 测试技术
从人工到AI驱动:天猫测试全流程自动化变革实践
天猫技术质量团队探索AI在测试全流程的落地应用,覆盖需求解析、用例生成、数据构造、执行验证等核心环节。通过AI+自然语言驱动,实现测试自动化、可溯化与可管理化,在用例生成、数据构造和执行校验中显著提效,推动测试体系从人工迈向AI全流程自动化,提升效率40%以上,用例覆盖超70%,并构建行业级知识资产沉淀平台。
从人工到AI驱动:天猫测试全流程自动化变革实践
|
3月前
|
人工智能 自然语言处理 JavaScript
利用MCP Server革新软件测试:更智能、更高效的自动化
MCP Server革新软件测试:通过标准化协议让AI实时感知页面结构,实现自然语言驱动、自适应维护的自动化测试,大幅提升效率,降低脚本开发与维护成本,推动测试左移与持续测试落地。
|
3月前
|
测试技术 API 数据库
测试金字塔:构建高效自动化测试策略的基石
测试金字塔:构建高效自动化测试策略的基石
341 114
|
5月前
|
存储 人工智能 算法
AI测试平台实战:深入解析自动化评分和多模型对比评测
在AI技术迅猛发展的今天,测试工程师面临着如何高效评估大模型性能的全新挑战。本文将深入探讨AI测试平台中自动化评分与多模型对比评测的关键技术与实践方法,为测试工程师提供可落地的解决方案。
|
6月前
|
JSON JavaScript 测试技术
用Postman玩转电商API:一键测试+自动化请求教程
Postman 是电商 API 测试的高效工具,涵盖基础配置、自动化测试、环境管理与请求自动化,助你快速提升开发效率。
|
3月前
|
人工智能 自然语言处理 测试技术
让AI帮你跑用例-重复执行,不该成为测试工程师的主旋律
测试不该止步于重复执行。测吧科技推出用例自动执行智能体,通过AI理解自然语言用例,动态规划路径、自主操作工具、自动重试并生成报告,让测试工程师从“点点点”中解放,专注质量思考与创新,提升效率3倍以上,节约人力超50%,重构测试生产力。
|
5月前
|
算法 测试技术 API
从自学到实战:一位测试工程师的成长之路
在技术快速发展的今天,自动化测试已成为提升职场竞争力的关键技能。本文讲述了一位测试工程师从自学到实战的成长之路,分享他在学习UI、APP和API自动化过程中遇到的挑战,以及如何通过实际项目磨炼技术、突破瓶颈。他从最初自学的迷茫,到实战中发现问题、解决问题,再到得到导师指导,逐步掌握测试开发的核心思维,并向测试平台建设方向迈进。文章总结了他从理论到实践、从执行到思考的转变经验,强调了实战、导师指导和技术服务于业务的重要性。最后,邀请读者分享自己的技术突破故事,共同交流成长。