实时警报通知:微信告警通知的重要性解析
872
2023-02-19
本文目录一览:
本文章出自【码同学软件测试】
码同学公众号:自动化软件测试
码同学抖音号:小码哥聊软件测试
1
认识Locust
说起性能测试工具,大家肯定想到的都是Jmeter,是的,由于其简单易用、功能强大,已经变成主流的压测工具之一。当需要实现一些高级功能的时候,可以使用Java语言对Jmeter进行扩展。
但是很多小伙伴只会Python,不会Java,可不可使用Python语言来做性能测试呢?答案是肯定的,今我们就来介绍下基于Python的强大的性能测试框架Locust。
Locust直译是“蝗虫”的意思,意在压测时产生的压力就像是漫天蝗虫一样,铺天盖地。Locust是用Python实现的开源性能测试框架,不同于其他压测工具基于进程/线程产生压力,Locust是完全基于事件,支持分布式,一个Locust节点可以在一个进程中轻松支持上千并发用户。从这一点来看,它的设计思路要远优于Jmeter、Loadrunner之类的工具。
2
Locust环境搭建
1、安装Python,建议使用Python3.6+
2、安装Locust及其依赖:pip3 install -i https://pypi.douban.com/simple locust
3、验证是否安装成功,执行命令:locust -V,如果能看到版本信息,即代表安装成功
3
Locust脚本编写
不同于Jmeter的界面化脚本配置,Locust的脚本需要完全写Python代码,虽然从一定程度提高了脚本编 写的门槛,但是对于熟悉Python的人来说还是比较简单的,况且自己写代码的话,脚本的灵活性更高。
Locust脚本就是一个普通的Python文件,但是在脚本中必须先定义一个类,然后继承Locust提供的一个HttpUser类。在测试类里,将压测的请求封装到一个函数里,一个简单的Locust脚本就完成了。
看个实际的例子,比如现在要测试这样一个接口
URL: pinter/login
参数:userName=adminpassword=1234
在上面脚本中,login_test是自定义的测试函数,函数上添加了一个装饰器@task,标明此函数是需要
Locust并发执行。在函数内调用了父类的client对象中post方法,发起了一次HTTP post请求。
在MyTest类里,必须添加一个wait_time属性,此属性设置了循环调用login_test之间的等待时间,
between(1,1)代表等待时间为1秒
4
Locust脚本运行
免费领取 码同学软件测试 课程笔记+超多学习资料+完整视频+最新面试题,可以 转发文章 + 私信「码同学666」获取资料哦
脚本写好后,需要在命令行上去运行Locust脚本,在cmd下(或者Mac的终端、Linux命令行),进入到脚本目录,执行命令
然后在浏览器上访问URL: http://localhost:8089/ ,就可以打开Locust的压测控制页面
5
Locust压测执行
在Locust的压测控制页面打开后,就可以针对脚本做一些压测的配置了,比如并发数,压测持续时间,
host等,其中:
Number of total users to simulate: 并发数,代表模拟了多少虚拟用户
Hatch rate: 每秒产生的用户数
Host: 目标服务器的ip或域名
点击"Start swarming",即可开始压测,在web页面会上统计出实时的性能汇总数据
字段解释
TPS和响应时间曲线图
好啦,关于Locust的入门,今天就介绍这么多啦,后续会继续介绍Locust的高级特性和详细功能,敬请期待!
本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
这里整理了一份基于Python语言的软件测试系统全面的学习路线,需要掌握以下知识点:
第一阶段:专业基础课程
阶段目标:
1. 熟练掌握IT核心技术:编程,数据库,操作系统,版本控制
2. 能够熟练运用所学技术搭建各类服务器环境
3. 深入理解软件研发过程各种疑难杂症及处理手段
4. 掌握Python编程技术并熟练运用Python进行程序设计
知识点:
1、Web页面元素,布局,CSS样式,盒模型,JavaScript程序设计,函数,基础算法,正则表达式。
2、数据库知识,范式,MySQL配置,命令,建库建表,数据的增删改查,约束,视图,存储过程,函数,触发器,事务,游标,建模工具深入理解数据库管理系统通用知识及MySQL数据库的使用与管理。为软件测试和测试开发打下基础。
3、Linux安装配置,文件目录操作,VI命令,管理,用户与权限,环境部署,Shell编程Linux作为一个主流的服务器操作系统,是每一个测试开发工程师必须掌握的重点技术,并且能够熟练运用。
4、Python编程基础,语法规则,函数,数据类型,PDBC,培养扎实的Python编程基本功,同时对Python核心对象编程有熟练的运用。
5、Python面向对象,异常处理,文件IO,多线程,网络编程,PyQT界面开发,深入理解面向对象编程,异常处理机制,多线程原理,网络协议知识,并熟练运用于项目中。
第二阶段:专业核心课程
阶段目标:
1. 熟练应用所学知识完成一个标准的软件测试项目
2. 熟练运用Python完成GUI测试,接口测试和性能测试开发
3. 对测试开发技术体系和实现原理有深入的理解
4. 灵活运用测试开发技术解决项目中的各种问题
知识点:
1、软件工程,软件质量,系统测试流程,方法,专业术语,测试用例设计,禅道管理工具,测试报告,缺陷管理理解软件工程的各类实际问题,理解系统测试的理论、方法与过程,熟练运用测试用例设计方法高效设计测试用例。
2、测试需求分析,测试方案设计,测试用例设计,测试项目实施,缺陷报告与测试报告,深入理解系统测试各个过程和关键环节,熟练完成系统测试项目。
3、SikuliX框架,UIAutomation框架,Selenium WebDriver框架,基础框架,Android应用,Monkey测试,Appium移动端测试框架,UIAutomator2移动端测试框架综合运用各类应用操作平台,完成各种自动化测试框架的学习和应用,深入理解GUI自动化测试技术及相应框架的测试开发。
4、Python单元测试框架,网络通信协议,HTTP与HTTPS协议,WebService与WebSocket协议,Python的接口测试库,PostMan与SoapUI接口测试工具通过对代码级接口测试和协议级接口测试的测试开发实战,灵活运用Python开发接口测试脚本,熟练运用各类接口测试工具。
5、性能测试原理,指标体系,场景设计,实施过程,JMeter工具应用,BeanShell脚本开发,Python+Locust性能测试框架深入理解性能测试技术体系和方法论,熟练运用JMeter性能测试工具和Locust性能测试框架实施对任意系统的性能测试。
第三阶段:综合实战项目
阶段目标:
1. 将软件测试和测试开发技术灵活运用于项目中
2. 具备较强的测试开发能力,独立完成测试开发项目
3. 综合运用软件测试技术,满足企业中高级人才需求
4. 对所学技术有深入的理解并具备独立解决问题的能力
知识点:
1、测试需求分析,同行评审,测试计划,测试方案,测试用例,配置管理,持续集成。通过对大型企业级应用系统的测试项目实战,强化理解系统测试项目的实施过程与技术细节。
2、接口测试设计与实施,回归测试,冒烟测试,安全性测试,RobotFramework框架应用,UI自动化实战将各类自动化测试技术结合项目实战演练,强化对自动化测试技术的运用,同时掌握更多的测试框架。
3、性能测试项目实战,LoadRunner性能测试工具,总结通过综合项目实战,将全套测试技术融入到项目中,强化学习效果和项目经验。
4、Python原生测试框架开发,包括Monkey,UI,图像识别,云测试平台,HTML测试报告,持续集成,KDT关键字驱动框架开发等原生技术实现通过大量的Python原生代码开发,深入理解自动化测试开发技术的底层实现原理,完全抛弃对工具的依赖,做到真正的测试开发技术。
5、基于测试框架的设计思路和实现手段,自主实现一套测试框架能够独立完成一套自动化测试框架,并能够直接用于实际项目中。
6、持续集成与Jenkins,安全性测试原理与工具,Python爬虫开发与Scrapy框架,提升软件测试其它类技术,增强知识面,提升竞争力,助力职业发展。
补充知识
1、 算法进阶,图像处理,视频处理,加密解密,压缩算法。
2、 UML统一建模语言、五种图、类图、类图详解、用例图、时序图。
3、Dubbo分布式开发框架,Oracle关系型数据库管理系统,MongoDB非关系型数据库管理系统。
4、 大数据开发框架Hadoop/MapReduce/Spark。
5、 Android与iOS的原生应用开发与WebApp开发。
6、OpenCV图像处理框架、TensorFlow深度学习框架,Lucene全文搜索引擎与中文分词框架Ik-Analyzer,视频处理算法与框架等。
软件测试基础免费下载
链接:https://pan.baidu.com/s/1hk72ABwcQkFC_9v3py0hlw
提取码:3gd9《软件测试基础(英文版)》融入了最新的测试技术,包括现代软件方法(如面向对象)、Web应用程序阳嵌入式软件。另外,《软件测试基础(英文版)》包含了大量的实例。
发表评论
暂时没有评论,来抢沙发吧~