性能测试的定义:通过自动化测试工具或者代码手段,来模拟正常、峰值负载访问被测系统,来观测系统各项性能指标是否合格的过程。
性能测试的介入时机,一般是在功能、接口测试都已经完成之后再来做性能测试。
注意:
重点组件有:
线程组是控制用于执行测试的线程数,也可以把一个线程理解为一个测试用户,线程组即一组用户。
线程组的特点:
线程组的分类
线程组属性设置
“添加”-》“配置元件”-》“HTTP请求默认值”这个路径中设置,请求的协议、域名或ip、端口号。
这样其他请求就可以使用这个默认配置,而不用再配置协议、域名或ip、端口号了
直接在路径中带参数
以key-value的形式传参数
以键值对形式传参
直接在“参数”的下面添加参数,适合于content-type为application/x-www-form-urlencoded的时候,不需要单独设置请求头。
以json的形式传参
传文件
只传文件的情况:
除了文件,还要传其他普通参数的情况:
会显示“查看结果树”作用域中的所有http请求。可以查看请求的结果
cookie管理器专门用于管理客户端的cookie信息,一般用于需要登录的场景保持与服务器端的会话。如果不设置该管理器,则无法再jmeter中保持会话
添加方式:“配置元件”-》“cookie管理器”
cookie管理器一般不需要专门设置,添加了就可以了
每次请求发送不同的值,就需要用到参数化。
添加方式:“测试计划”-》“线程组”-》添加“配置元件”-》“用户定义的变量”
步骤:
优势:所有要用到该值的订单,统一使用一个变量${变量名},便于维护
劣势:多个用户也只能取一个值,无法让多个用户使用多个值
添加方式:“测试计划”-》“线程组”-》添加“配置元件”-》“CSV数据文件设置”
步骤:
优势:对同一个用户多次循环,可以取不同的值,适合数据量比较大的参数化测试,是在接口测试或性能测试中常用的一种方式。
主要用于HTML格式的响应断言。
添加方式:“测试计划”-》“线程组”-》“HTTP请求”-》右键“添加断言”-》“xpath”断言
主要用于json格式的响应断言,断言非json格式会失败
添加方式:测试计划-》线程组-》http请求-》右键添加断言-》json断言
步骤:
“Assert JSON Path exists”:设置json的路径,必须用$.表示json的根目录。如:$.code,表示取code的值
“Additionally assert value”: 勾选后可以填写预期结果
主要用于断言请求的响应时间是否在设定的时间范围内。
添加方式:测试计划-》线程组-》HTTP请求-》右键添加断言-》断言持续时间
步骤:
关联主要用于解决性能测试中多个接口之间的依赖关系,一般可以通过后置处理器来提取。
常用的关联方法:
添加方式:测试计划-》线程组-》HTTP请求-》右键添加后置处理器-》正则表达式提取器
步骤:
添加方式:测试计划-》线程组-》HTTP请求-》右键添加后置处理器-》xpath提取器
步骤:
添加方式:测试计划-》线程组-》HTTP请求-》右键添加后置处理器-》json提取器
步骤:
beanshell是一个小型,免费,可嵌入的java源代码解释器,具有用java编写的对象脚本功能。
常见的beanshell组件:
添加方式:测试计划-》线程组-》HTTP请求-》右键添加前置处理器-》BeanShell processor
在文本框中添加sign获取的shell
import org.apache.commons.code.digest.DigestUtils; String sign='要签名的字符串'; String sign_md5 = DigestUtils.md5Hex(sign); // 将签名放入变量signStr中 vars.put("signStr",sign_md5);
添加方式:测试计划--》线程组--》HTTP请求--》右键添加定时器--》Synchronizing Timer
同步定时器目的是阻塞线程,直到阻塞了n个线程,然后立即释放它们。用来做大数据量的并发请求
步骤:
可以让jmeter以指定数字的吞吐量(以每分钟的样本数为单位,而不是每秒)执行,通常用于负载测试、压力测试等。吞吐量计算的范围可以指定为当前线程、当前线程组、所有线程组
添加方式:测试计划-》线程组-》HTTP请求-》右键添加定时器-》constant throughput timer
步骤:
在使用jmeter进行性能测试时,如果并发数比较大,单台电脑的CPU和内存可能无法支持,这时,就可以使用jmeter提供的分布式测试的功能。
注意事项:
注意:linux上通过命令+参数启动:
./jmeter-server -Djava.rmi.server.host.name=ip地址
注意:如果通过远程执行无法显示响应内容的话,需要将jmeter.properties中的mode=Standard取消注释
生成jmeter报告,先配置jmeter环境变量:
生成报告的命令:
jmeter -n -t xxx.jmx -l http.jtl -e -o report
如果已经有之前生成的jtl文件,也可以直接使用jtl文件生成报告
命令如下:
jmeter -g xxx.jtl -o report
如果对python自动化测试、web自动化、接口自动化、移动端自动化、大型互联网架构技术、面试经验交流等等感兴趣的老铁们,可以关注我。我会在公众号(程序员阿沐)/群里(810119819)不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。欢迎分享,欢迎评论,欢迎转发。需要资料的同学可以关注我获取资料链接。
文章浏览阅读385次。基于Arduino uno,获取红外寻迹传感器的原始值_怎么检测红外寻迹模块返回值
文章浏览阅读494次,点赞5次,收藏9次。单片机(Microcontroller)是一种集成了微处理器核心、存储器、输入/输出接口和定时器等功能模块的集成电路芯片,具有体积小、功耗低、性价比高等特点,被广泛应用于各个领域。单片机的发展历史可以追溯到20世纪70年代,当时的单片机功能有限,主要用于简单的控制任务。
文章浏览阅读412次。https://zhuanlan.zhihu.com/p/54096381_生成对抗网络 python代码
文章浏览阅读5.2k次,点赞7次,收藏18次。有时候我们需要在网页上展示一些数据,如某公司想在网页上展示公司的库存清单。如下表:想在网页上展示上述表格效果可以使用以下代码:创建表格的四个元素:table、tbody、tr、th、td1、…:整个表格以标记开始、标记结束。2、…:当表格内容非常多时,表格会下载一点显示一点,但如果加上标签后,这个表格就要等表格内容全部下载完才会显示。如右侧代码编辑器中的代码。3、…_怎样在网站中添加表格别人可以下载
文章浏览阅读770次。到目前为止,我们已经讨论了如何将对象实例公开给QML上下文。有时我们还希望在QML中可以使用注册类本身。注册允许将类当作QML中的数据类型来使用。此外,注册还可以提供其他功能,比如允许在QML中将类用作可实例化的QML对象类型,或者允许在QML中导入和使用类的单例实例。通常我们使用Q_OBJECT宏注册从QObject派生的类,也可以用Q_GADGET宏声明一个比QObject“更轻”的版本。在这些更轻的类中,我们可以访问它们的属性、枚举和可调用的方法,但不能使用信号槽系统,我们稍后会进行介绍。1. 注_qmlregisteruncreatabletype
文章浏览阅读2.1k次,点赞7次,收藏15次。头文件与命名空间的关系 Q:有些书说有些头文件不在std里是什么意思?std里包含些什么?为什么不用std就不能使用cout?头文件中声明的东西为什么在使用的时候需要先using namespace std;一下?如果我不用#include和其他头文件。只用using namespace std 的话,是不能用cout的。这说明cout是在iostream里声明_c#中命名空间和c语言中头文件之间的关系
文章浏览阅读1.2k次,点赞2次,收藏8次。注释dtype=np.int代表导入数据的格式为整数delimiter=’,'代表原始数据的存储格式为以‘,’为间隔原始文件中以‘#’开头的行代表被注释,不会被np.loadtxt读取通过[[0] * b for i in range(a)]的方式初始化一个x[a][b]的二维数组np.savetxt()函数可以用来保存数据,第一个参数为保存数据的路径,其中C是自定义的文件名,如果该文..._python 读取csv矩阵乘法
文章浏览阅读1.4k次。军团要塞2绘画渲染(a)美术概念 (b)游戏内玩家看到的角色摘要在《军团要塞2》中我们提出了一整套美术方案和新的实时渲染技术,这种技术能实现出一种独一无二的渲染风格。《军团要塞2》由美术和程序基于20世纪初时商业插画中的传统风格合作完成。在这篇论文中,我们会结合美术方向与技术选择,来讨论如何支持美术目标和玩法限制。除了实现一种有冲击力的风格外,我们也设计了边缘光照和亮度与色调变化的着色器技..._军团要塞画师
文章浏览阅读9.6k次,点赞8次,收藏65次。这里介绍:RGB图3个通道的提取、RGB图转灰度图、图片反转、图片亮度调整具体操作,需导入的库如下:原图如下:结果如下,从左到右分别是:Red,Green,Blue这里借助skimage库中的exposure函数来进行图像亮度的调整结果如下:........._jupter rgb灰度直方图提取
文章浏览阅读931次。2023年地级、省级、县级、国界、九段线的shp数据_九段线shp数据
文章浏览阅读797次,点赞16次,收藏19次。二十一世纪我们的社会进入了信息时代,信息管理系统的建立,大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多,而在线管理系统刚好能满足这些需求,在线管理系统突破了传统管理方式的局限性。于是本文针对这一需求设计并实现了一个基于django高校本科生学习成长记录系统,为了简捷并有效的解决学习各方面的问题。
文章浏览阅读7.7k次。为什么要共享session?我们使用单台Tomcat的时候不会有共享sesssion的疑虑,只要使用Tomcat的默认配置即可,session即可存储在Tomcat上。但是随着业务的扩大,增加Tomcat节点构成Tomcat集群大势所趋,分布式带来了增加更大规模并发请求的优势,但是也随之到来了一个问题,每个Tomcat只存储来访问自己的请求产生的session,如果Tomcat-A已经为客..._redis分布式session共享