Jmeter接⼝测试实战练习题及答案(本博客原创·全⽹⾸发)接⼝
地址
Post:
接⼝参数参数名参数值说明SystemCode Alipay
系统代
码plateformCode Alipay
平台代
码service create_direct_pay_by_user
服务类
型content
String content ="{" +
"'Body':'introduce'," +
"'OutTradeNo':'20170806049862102737'," +
"'Subject':'etc'," +
"'Price':0.01" +
"}";
Json
数据key7c1f42d710c5489cb940b4096d86801b
加密
Key值sign
String sign = PayEncryptHelper.Encrypt(SystemCode, plateformCode, service, content,
key);
加密⽅
基本实现编号事项
1
引⼊这两个JAR包:Z:\⾃动化\Jmeter\Training\Excersize到Jmeter之中
或放⼊..\apache-jmeter-3.1\apache-jmeter-3.1\lib\ext之中
2接⼝地址相关请求的信息,设置为全局变量,包括请求编码类型
3接⼝参数[SystemCode,plateformCode,key]设置为局部变量
4content与sign接⼝请求前脚本实现获取
5content的Json数据使⽤外部CSV⽂件读取
6第3点读取到的数据转化成⼀维数组再附给content字段
7取第4点,把⼀维数据⾥的所有数据打印输出到调试窗⼝
8接⼝请求完脚本打印输出接⼝响应代码与消息
9接⼝请求完脚本打印输出接⼝返回Json的Status与Code
10界⾯断⾔"Code":"Success"是否存在
11
脚本断⾔Message是否包含value='确定',包含就打印输出“断⾔Message成功!”,否则打印输
出“断⾔Message失败!
12使⽤JSON Extractor组件获取Json返回值Status,Code,Message,Data并在Bean Shell中打印输出他们的值
配置JDBC链接组件:
1. URL:jdbc:mysql://10.9.35.31:3306/zto_pangu_nhzq_0000?
数据库
1
useUnicode=true&characterEncoding=utf8&allowMultiQueries=true 2. username:ztpg 3. password: xxxxxxxx
2更新表test_enviroment⾥name='27'的“⽕理财环境”到“我的测试⽕理财环境” 3获取第5⾏数据的第2列值并打印输出
4
BeanShell断⾔取出来的第2列值是期望更新的值
⾸先我们看“基本实现”部分:
第⼀题,引⼊这两个jar包,很简单了,就把两个jar包在“测试计划”组件中加进来。
链接: 提取码: rrv5
(注意:如果导⼊之前写好的.jmx,如果出现跑的时候跑不通,⼗有⼋九是需要把之前在"测试计划"中添加好的jar包路径,重新删掉,再添
加,切记)
第⼆题,要求我们把接⼝地址相关请求的信息,设置为全局变量,包括请求编码类型那也就是说我们要建⼀个“⽤户定义变量”的全局访问权限的“配置元件”
这⾥定义请求相关信息,⽆⾮就是IP地址(URL地址)、端⼝号、路径、服务类型……
第三题,接⼝参数[SystemCode,plateformCode,key]设置为局部变量,既然设为局部变量,并且即将为后⾯的Sampler做HTTP请求做准备,那就要添加⼀个名叫“⽤户参数”前置处理器(前置处理器就是为了给Sampler做请求前⽽做准备⽤的):
在这⾥,我们按照题⽬的要求,添加三个参数[SystemCode,plateformCode,key]名称和值。
第四题,content与sign接⼝请求前脚本实现获取,既然是“请求前”,那还是要添加⼀个前置处理器,但注意,我们需要通过脚本实现获
取,那肯定是要⽤到名叫“BeanShell PreProcessor”这个前置处理器,它是⼀个通过java语⾔编写的脚本(程序段)来实现获取我们需
要的content和sign值。
这个建好了之后,我们通过如下java脚本代码进⾏获取content和sign的值。
mysql下载jar包crypt.EncryptHelper;
crypt.PayEncryptHelper;
/
/这⾥是即将从第五题中获取content的Json数据使⽤外部CSV表格⽂件读取过来的${js}值,这个${js}其实就是content的值,vars是jmeter的系统变量,可理解成我把这String content = "${js}";
vars.put("myData",content);
log.info("====" + ("myData") + "=====");  //传到HTTP请求⾥的局部变量content中(请见如下截图)
//获取sign值,vars是jmeter的系统变量,可理解成我把这个mySign的值传给jmeter了,jmeter在外⾯就可以⽤${mySign}来表⽰sign的值
String sign = PayEncryptHelper.Encrypt("Alipay","Alipay","create_direct_pay_by_user",content,"7c1f42d710c5489cb940b4096d86801b");
vars.put("mySign", sign);
log.info("====" + ("mySign") + "=====");  //传到HTTP请求⾥的局部变量sign中(请见如下截图)
第五题,content的Json数据使⽤外部CSV⽂件读取。
⾸先在C盘⾥建⼀个csv⽂件,⾥⾯放json信息:(这⾥的路径为C:\lixian.csv)
你来想⼀想,读取CSV⽂件那肯定要⽤这个名叫“CSV Data Set Config”配置元件了。配置元件⼀般是全局访问的,所以在“线程组”中去添加这个“CSV Data Set Config”。
按照如下配置:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。