五里坨网站建设,个人网站备案需要哪些材料,内网电脑做网站,二手书交易网站开发毕业设计jmeter工具无论做接口测试还是性能测试#xff0c;参数化都是一个必须掌握且非常有用的知识点。参数化的使用场景:
1#xff09;多个请求都是同一个ip地址#xff0c;若服务器地址更换了#xff0c;则脚本需要更改每个请求的ip
2#xff09;注册账号#xff0c;不允许账… jmeter工具无论做接口测试还是性能测试参数化都是一个必须掌握且非常有用的知识点。参数化的使用场景:
1多个请求都是同一个ip地址若服务器地址更换了则脚本需要更改每个请求的ip
2注册账号不允许账号重复想批量注册用户时
3模拟多个用户登录需要用到不同用户信息登录时
4上一个请求的输出结果用于下一个请求的参数传入例如登录获取到的token信息用于提交账单请求的参数调用 一、用户定义的变量
1、右键快捷菜单中选择 添加-配置元件-用户自定义变量。
用户自定义变量中的定义的所有参数的值在测试计划的执行过程中不能发生取值的改变因此一般仅将测试计划中不需要随迭代发生改变的参数只取一次值的参数设置在此处。例如应用的tid和vid。 取样器中的tid和vid用${tid}和${vid}代替即使被测应用的部署服务器发生了变化只需要简单地修改tid和vid参数的取值即可。
2、在测试计划下方也有用户定义变量使用方法同上。 二 、用户参数
右键快捷菜单中选择 添加-前置处理器-用户参数
与用户自定义变量不同的是用户参数列表中的参数取值可以在测试计划执行过程中发生变化。 如图username和password分别有两组不同的取值。通过界面右下方的四个按钮可以向列表中增加参数增加参数值删除参数和删除参数值。
“每次迭代更新一次”选项控制参数取值的变化规则如果选中该选项则参数的值在每个迭代中保持不变在新的迭代开始时取下一个值。
如果取消该选项则参数值在每个在其作用域内的sampler发出请求时取下一个可用值。
如果参数的取值范围很小使用用户参数比较合适如果参数的取值范围很大建议使用csv data set config方法。
现在我也找了很多测试的朋友做了一个分享技术的交流群共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源没人解答问题坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化性能安全测试开发等等方面有一定建树的技术大牛
分享他们的经验还会分享很多直播讲座和技术沙龙
可以免费学习划重点开源的
qq群号110685036【暗号csdn999】 三、函数助手
1、CSV函数助手
点击菜单栏“选项”----函数助手对话框看下图: CSV文件列号是从0开始的第一列0、第二列1、第三列2、依次类推。 复制生成的参数化函数打开登陆请求页面在右侧的参数化中找到我们要参数化的字段这里对用户名和密码做参数化第一列是用户名列号为0第二列是密码列号为1修改函数中对应的参数化字段列号就可以啦。 2、Random
选项-函数助手对话框列出了系统函数的使用方法生成后参数传入直接使用即可。 3、下面介绍一下常用系统函数
1.__time获取当前时间第一个参数为时间格式第二个参数为存放获得当前时间值的参数名称例在第一个参数输入yyyy-MM-dd HH:mm:ss单击生成即可得到正确的函数表达式。
2.__Random随机数
3.__StringFromFile从本地csv文件中读取记录存入参数与CSV Data Set Config相比该函数的强大之处是它可以支持从多个文件中读取数据。第一个参数是文件名使用绝对路径第二个参数是存放取得数据的参数列表第三个和第四个参数分别为数据文件的起始和终止顺序号。 四、CSV Data Set Config配置元件
右键快捷菜单 添加-配置元件-CSV Data Set Config Filename获取参数值的文本文件数据池。文件名既可以使用绝对路径也可以使用相对路径。当使用相对路径时jmeter会在当前测试计划所在路径下寻找该文件。
File Encoding文件编码方式默认为ANSI.如果文本文件是以其他方式保存的则请使用相应的编码方式如utf-8。
Variable Names从文本文件中获取内容的参数列表。参数列表中可以包含多个参数用逗号分隔。
Delimiter文本文件中分隔记录域的分隔符“t”表示tab键。
Allow quoted data当该项值是False时CSV Data Set Config原封不动地将文本文件中相应域的值取为参数值当为Trues时将处理文本中用双引号引用的部分把双引号中的内容取为参数值。除非是CSV文件中的某个域的值包含有设定的分隔符否则该项设置为False即可。
Recycle on EOF当该项取值为True时允许循环取值。当文件中的全部记录被取完后重新从文件的第一行取值。为False时根据stop thread on EOF的取值决定测试计划的执行行为。
Stop thread on EOF?当Recycle on EOF为true时无论该项取何值测试计划的执行行为相同当Recycle on EOF为False时该项值为True时文件记录取完后线程停止运行如果该项取值为False则线程后续执行时给定参数的取值为EOF。
Sharing modeAll threads该测试计划的所有线程共享csv文件中的记录所有线程按照顺序取文件中的记录。Current thread group该测试计划中的每个thread group中的所有线程共享csv文件中的记录。Current thread每个线程各自独立使用csv的记录。以下在参数内直接使用即可 五、jmeter的属性
以命令行方式运行测试计划时用户可指定从命令行输入的值替换测试计划中的某些值。例如以命令行指定线程组的线程数和运行时长。 __property函数具有3个参数分别为属性名称、存放属性值的变量名称可选属性默认值可选。命令行Jmeter –n –t test.jmx –Jthreadcount10 –Jduration60-J表示设置property的值以上命令行表示10个线程运行运行时间为60秒。 六、正则提取
需要用上个请求返回的参数内容
1、首先添加后置处理器正则表达式提取器可使用Debug Postcessor查看请求参数结果。 2、 在下个请求中将引用名称带入即可。 七、需要使用上个线程的返回的参数内容
1、首先在线程组1中使用__setProperty函数设置jmeter属性值(此值为全局变量值)将所需变量值如${oldtoken} 设置为jmeter属性值即newtoken示例 String oldtokenbsh.args[0];{__setProperty(newtoken,{oldtoken},)}2.在线程组2中使用_p函数来调用jmeter属性获取属性值从而实现跨线程组参数值传递。在参数或者url中直接调用该属性即可方法${__P(newtoken,)} 八、参数需要base64加密
1、首先添加后置处理器BeanShell PreProcessor可使用Debug Postcessor查看请求参数结果。 2、脚本区域import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;String cursor64 bsh.args[0];String queryId64 bsh.args[1];BASE64Encoder encode new BASE64Encoder();String cursorbase64 encode.encode(cursor64.getBytes());System.out.println(cursorbase64);vars.put(cursor64, cursorbase64);vars.put(queryId64,querybase64);
3、在请求中直接使用put的参数即可。 九、参数AES等加密——BeanShell
写好代码打成jar包把jar包放到jmeter目录apache-jmeter-2.13libext下在jmeter某个sampler下添加一个BeanShell PreProcessor在beanshell PreProcessor中导入我们的jar包调用里面的加、解密码方法把结果保存在jmeter变量中下面两个方法是beanshell中我们最常用到的
· vars.get(String paramStr)获得变量值· vars.put(String key,String value)将数据存到jmeter变量中import com.pingan.ff.account.user.utils.*;//加密System.out.println(加密);String password 123123;String encode SecurityUtils.getKey(password);//调用工具类中的方法进行加密System.out.println(Set my encode);vars.put(encode,encode);//把值保存到jmeter变量encode中String getEncodevars.get(encode);System.out.println(Get my encode: getEncode); 把加密后的密码存到jmeter变量中然后在http sampler中就可以通过${encode}进行使用了 END点赞关注不迷路