怎样在小程序里实现标题的更改
1595
2022-08-30
快速掌握jmeter(一)——实现自动登录与动态变量
jmeter作为性能测试中最常见的一种工具,如果接口数量不在很多的情况下,通过在jmeter中直接进行录入即可。
当遇到需要对许多接口处理的场景,想要做到简单高效,往往就需要借助jmeter中提供的组件来进行配合使用。
这里根据我这几天遇到的一些场景,对jmeter中比较常用的几个使用组件进行一个记录。
自动登录
有时可能需要在jmeter中模拟多个用户进行访问,所访问的接口中也需要带上登录后的token信息。
举个例子: 输入用户名和密码后,返回一个token,之后每个接口调用时需要将此token放到请求的header中。
知识点
HTTP_Header_ManagerFunctions and VariablesjsON_Extractor
实现方式
这里以一个登录接口和一个获取用户信息接口为例
登录接口:
Extractor后置处理
在登录接口中添加一个后置处理器(post processor)中的JSON Extractor,在JSON Path expressions中填写对应的提取语句
以下面这个返回json结构为例
{ "code": "200", "data": { "token": "thisistoken" }}
其对应的json路径(详细语法说明可以参考JsonPath)表达式则为:$.data.token
同时在Name of created variables中输入一个变量名称,名称可以随便取,如这里将它命名为token
这样处理好了之后,当执行完了登录接口后,后置处理器就会将服务端返回的token定义为变量token了,之后便可以在其他地方使用这个变量
变量使用
在需要用到变量的地方,使用系统中的变量,如在获取用户信息接口中需要传入token信息,则在对应的请求头管理器中传入使用即可。如上图中的${token}
变量详细使用方式可参考:Functions and Variables
对于复杂流程,登录部分也可以使用控制器中的Only Once Controller包装一下再进行使用。
变量信息由用户启动时传入
如果是在GUI界面中打开jmeter,我们仔细观察的话,是可以看到有这么一段话的:
================================================================================Don't use GUI mode for load testing !, only for Test creation and Test debugging.For load testing, use CLI Mode (was NON GUI): jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]& increase Java Heap to meet your test requirements: Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch fileCheck : use GUI mode for load testing !, only for Test creation and Test debugging.
主要是说:不要在GUI模式下进行压力测试,GUI模式下仅仅用于测试用例的创建和调试
当在命令行模式下运行jemter时,由于没有界面,想要让某些信息在每次运行jmeter命令时进行传入,如果传入的参数不多,则可以用-J参数来进行处理。
知识点
__P-JHow to reference variables and functions
实现方式
这里以动态设置线程数为例,想要做到线程数量由运行时输入,我们可以这样操作:
先在jmeter中添加一个Config Element中的User Defined Variables,在其中对变量信息进行管理。如上图中定义了一个名为threadNum的变量,其值为:
${__P(threadNum,1)}
它的意思是指threadNum的值通过用户传入,默认值为1。
随后在使用到需要使用到它的地方直接使用用户变量即可。
这里仍然以前面用户登录和获取用户信息的实例,来测试一下。
输入jmeter的运行命令:
.\jmeter -n -t C:\Users\ping\Desktop\temp\jmeterTest.jmx -l C:\Users\ping\Desktop\temp\report\result.txt -e -o C:\Users\ping\Desktop\temp\report -JthreadNum=3
其中-t后面为jmeter的测试用例jmx文件的路径,-l为本次测试的日志文件输出路径,-o后为测试报告生成的路径。
具体参数信息可以查看官方的说明文档:options
-JthreadNum=3为变量threadNum的值,这里指定为3。对应上面的实例,对应的每个接口所运行的线程数也为3个。
执行结果
运行完后,打开jmeter生成的测试报告看一下运行结果:
从报告中也可以看出每个测试接口也都执行了3次,说明变量信息生效了。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~