技术文章

接口测试——系统内部接口(下)

(7)修改请求中的值,改为参数配置中的列名,Jmeter引用变量的方法是${变量名},如${username}、${email}等。注册请求参数设置如图5- 85所示。

 

接口测试

图5- 85替换注册请求变量值

 

(8)添加正则表达式提取器,获取服务器响应结果,以此判断用例执行情况。请求发送后,才有服务器响应,因此正则表达式提取器为后置处理器。点击用户注册请求发送的步骤,右键,“添加”-“后置处理器”-“正则表达式提取器”,如图5- 86所示。

 

接口测试

图5- 86正则表达式提取器设置界面

 

名称:改为容易理解的信息,如“获取服务器处理信息提示”。

 

Apply to:默认设置。

要检查的响应字段:默认。

引用名称:设置Jmeter可被引用的变量名称,如“msg”。

 

正则表达式:在响应主体中提取期望结果的正则表达式,如服务器响应为“<p style="font-size: 14px; font-weight:bold; color: red;">- 登陆密码不能少于 6 个字符。</p>”,利用正则表达式可将“- 登陆密码不能少于 6 个字符。”提取出与测试用例中的预期结果进行比较,此处设置的正则表达式为“font-weight:bold; color: red;">(.*)</p>”,表示提取“font-weight:bold; color: red;">”与“</p>”间的数据。

 

模板:当匹配到数据时,取第几个数据,通常设置为$1$,表示取第一个数据。

 

匹配数字:0表示随机取,当匹配到多个数据,想随机使用一个时,将此处设置为0。

 

缺省值:取不到数据时,缺省使用什么数据,此处默认,不做设置。

 

正则表达式提取器设置完成后的界面如图5- 87所示。

 

接口测试

图5- 87获取注册响应信息

正则表达式提取器设置

 

(9)为了便于结果查看,添加“查看结果树”、“Debug Sampler”。

 

(10)将所有组件的名称设置为易理解的表述,便于测试维护及执行,最终设置完成的脚本界面如图5- 88所示。

 

接口测试

图5- 88优化后的用户注册脚本界面

 

考虑到测试过程仅进行用户注册请求的发送,因此可将几个无关紧要的请求禁用,节省处理时间。

 

因为一共有5条测试用例,设置线程组中的执行线程为5,这样每个线程将自动读取测试用例中的每条用例执行。线程组设置界面如图5- 89所示。

 

接口测试

图5- 89设置用例执行线程数

 

全部设置完成后,启动执行,测试完成后,点击“查看结果树”,验证测试结果,如图5- 90所示。

 

接口测试

图5- 90查看结果树界面

 

检查每一个“脚本执行调试器”中的响应数据,验证用例执行状态。检查服务器返回结果是否与预期一致。

 

ECShop用户注册通过接口测试时存在缺陷,在UI界面执行“确认密码与密码不一致”用例时,系统将提示“两次输入密码不一致”,但利用接口发送注册请求时,服务器不再检查确认密码的合法,可以注册成功,如图5- 91所示。

 

接口测试

图5- 91用户注册接口测试缺陷

 

从图5- 91的响应数据可以看到,copwd=111111,pwd=123456,发送该请求,服务器提示注册成功。测试工程师应当提交缺陷。

 

【案例5-32用户登陆Jmeter接口测试】

与用户注册接口测试相比,用户登陆传递的参数较少,只有用户名及密码两个参数,因此可直接构建HTTP请求,设计脚本。

 

(11)利用Fiddler获取用户登陆交互过程,发现其主要涉及username、password、act三个参数,并使用post方式传递数据,其余参数不影响登陆操作,如图5- 92所示。

 

接口测试

图5- 92用户登陆参数列表

 

(12)创建用户登陆测试线程组,然后选择“用户登陆接口测试”,右键,“添加”-“Sampler”-“HTTP请求”,如图5- 93所示。

 

接口测试

图5- 93添加HTTP请求

 

名称:设置为容易识别的名称,如“发送用户登陆请求”。

 

服务器名称或IP:设置接收请求的服务器地址,如“192.168.0.105”。

 

端口号:设置服务器接收请求的端口号,此处为80。

 

Implementation:请求实现方式,没什么大的区别,与BadBoy录制时保持一致,故选择“JAVA”。

协议:请求发送所用协议,设置为“HTTP”。

 

方法:通过Fidller分析用户登陆过程使用的是Post方式,因此设置为“POST”。

 

路径:发送的请求路径,如“/ecshop/user.php”。

同请求一起发送参数:根据Fiddler探测的参数,添加相关参数。

 

完成设置后的界面如图5- 94所示。

 

接口测试

图5- 94用户登陆请求设置界面

 

(13)设置完成后,添加“看结果树”运行调试,如果结果显示登陆成功,说明请求发送正确且服务器正确处理,可开展用例设计及执行操作。调试结果如图5- 95所示。

 

接口测试

图5- 95用户登陆成功信息

 

至此,利用Jmeter设计用户注册及登陆接口测试脚本工作完成,测试工程师在进行回归测试时,可直接执行该脚本,实施测试活动。

 

很多公司在使用敏捷开发模型时,要求测试工程师掌握接口测试技术,因此笔者建议读者加强这方面的学习。