之前看到虫师在博客对Web接口测试的相关工具/技术进行了划分,主要针对HTTP/SOAP协议接口的功能测试:
1、浏览器URL(GET请求),如: http://127.0.0.1:8000/api/user/stu_info/?stu_name=fengfeng
2、浏览器插件:Poster、Postman 简单的接口测试
3、独立的接口工具: Jmeter(支持SOAP)、soapUI(SOAP协议) robot framework(RequestsLibrary)
4、写代码(接口测试框架):urllib、urllib2、requests(urllib3) + unittest + HTMLTestRunner + PyMySQL
对于第一种和第二种的Postman工具在之前的博客中有写过,下面将利用Jmeter对各类型的接口进行测试,本地配好了JMeter 3.0的运行环境;
一、Jmeter 的使用步骤
打开Jmeter 安装包,进入in 目录,双击打开"jmeter.bat",具体步骤如下:
1、打开的Jmeter 页面中,添加线程组(右击“测试计划”-“添加”-"Threads(Users)"-“线程组”),如下图:
2、添加Http请求(右击“线程组”-“添加”-“Sample”-“HTTP请求”),如下图:
3、在Http请求中写入输入 服务器名称或IP、对应的端口号(默认端口号为:80)、请求路径、请求方式(GET/POST)和参数(参考接口文档),如下图(此处以GET请求方式为例):
4、添加查看结果树(右击“线程组”-“添加”-“监听器”-“察看结果数”),如下图:
5、运行接口、查看返回值,如下图:
二、Http接口请求实例
1、key-value传参的Get请求:
在上面Jmeter使用步骤中有描述,以GET方式,参数为key-value形式传参为例进行发起请求
2、key-value传参的Post请求
与key-value的Get请求类似,建立一个HTTP请求,选取请求方式需切为POST,至于请求路径、请求参数根据接口文档正确填写即可,然后运行脚本,察看结果树中查看返回值
3、以Json串格式传参的Post请求
建立一个HTTP请求,选取请求方式为POST,请求参数根据接口文档以Json串格式写在Body里面,然后运行脚本,察看结果树中查看返回值
4、需要添加Cookie的请求
以金币充值接口(需管理员权限操作的接口)为例,建立一个HTTP请求,选取请求方式POST,请求参数根据接口文档 输入对应的请求路径及请求参数,并将HTTP请求改名为:学生金币充值
由于此接口有权限验证,需要admin用户才可以做操作, 因此需添加 HTTP Cookie 管理器 来传递管理员用户的Cookie(如通过登录管理员用户:niuhanyang 获取的Cookie为:0dab39079367993222d1f6e567443988)
则可添加HTTP Cookie 管理器(右击“学生金币充值”-“添加”-“配置元件”-“HTTP Cookie 管理器”)
然后填写管理员权限用户的Cookie值,设置Cookie 的名称(即管理员的用户名:niuhanyang),值(即niuhanyang登录后得到的sign:0dab39079367993222d1f6e567443988),域(即服务器名称或IP)
最后可以通过 察看结果数 的响应数据查看结果
5、需要添加请求头(Headers)的请求
以 获取所有学生信息(需要添加Header的接口)为例,建立一个HTTP请求,选取请求方式GET,请求参数根据接口文档 输入对应的请求路径及请求参数(此接口不需传参),并将HTTP请求改名为:获取所有学生信息
然后则添加 HTTP信息头管理器(右击“获取所有学生信息”-“添加”-“配置元件”-“HTTP信息头管理器”)
然后根据接口文档,填写需要填写的请求头,如此接口文档中写明:需要添加加header信息,key为Referer value 为http://api.xxxxx.cn/
最后可以通过 察看结果数 的响应数据查看结果
注:此文中写到的接口参考上一篇文章(学习笔记-Postman进行HTTP接口测试)中的接口文档