上一篇文章已经详细的讲解了如何通过jmeter代理录制app脚本,本次将为大家讲解如何通过接口API或抓包手写脚本。
抓包手写脚本准备工作
l Jmeter:已配置环境变量且能正常打开;
l 笔记本电脑一台;
l 手机一部:跟笔记本电脑处于同一网段;
l 抓包工具:fiddler、wireshark;
Http协议
抓包工具配置(以fiddle为例)
l 工具-fiddler选项-常规:勾选“允许远程计算机连接”;
l 工具-fiddler选项-连接:监听端口设置为8888;
l 过滤设置:过滤器-使用过滤器-仅仅显示以下主机,输入要过滤的请求
手机设置代理
具体步骤参照上篇文章,此处不再赘述。
03筛选请求
手机访问bbs.besttest.cn,回到fiddler查看抓取到的请求并筛选有用请求;
一个HTTP请求我们需要关注的点如下:
l 路径:除去域名和端口的后缀部分,首页一般是/,其他页面/page/...;
l 请求类型:一般是GET,POST;
l 请求头(http header);
l 请求参数;
比如访问bbs搜索页,我们只需要关注http://bbs.besttest.cn/search?word=xxx这个请求;其中路径为/search,请求类型为get,请求参数为word=xxx;
04手写脚本
l 新建测试计划:文件-新建;
l 新建线程组:右键测试计划,添加-Threads(Users)-线程组;
l 添加http请求:右键线程组,添加-Sampler-HTTP请求;
l 编写http请求:
1. 协议:默认为http,可不填写;
2. 服务器名称:fiddler抓取到的请求中主机部分(如:主机部分为bbs.besttest.cn,则此处填写bbs.besttest.cn;若抓取到的主机部分为192.168.1.10:8890,则填写192.168.1.10)
3. 端口号:fiddler抓取到请求中主机:后的数字,如192.168.1.10:8890,此处填写8890;
4. 方法:fiddler工具中Request Headers下显示的请求类型;
5. 路径:fiddler工具抓取到的url部分,如:/search?word=xxx;
6. 参数:POST请求下考虑;切换到WebForms下可查看到请求体;
编写脚本示例:
l 添加查看结果树:右键线程组,添加-监听器-查看结果树;
l 运行并查看:
05添加断言
上述步骤中我们已经学会了通过查看结果树的响应数据判断脚本是否成功;还可以通过断言判断(类似LR的检查点)
l 选中要检查的HTTP请求,右键-添加-断言-响应断言
l 响应数据处可以发现"测试经理"字样,我们添加响应文本:
l 添加断言结果:右键线程组-添加-监听器-断言结果,运行脚本;(若断言不通过,此处会显示报错)
https协议
大体步骤同http协议,有以下两点需要注意:
l fiddler设置:工具-fiddler选项-HTTPS,勾选捕获HTTPS连接,如下图:
l fiddler证书安装
①手机访问电脑ip:设置的端口号下载fiddler证书,如:192.168.1.10:8888
②点击安装;
④设置-通用-描述文件,该证书已安装;
抓取请求
手机访问https://m.jd.com,查看fiddler抓取到的请求;
编写请求
l 新建测试计划:文件-新建;
l 新建线程组:右键测试计划,添加-Threads(Users)-线程组;
l 添加http请求:右键线程组,添加-Sampler-HTTP请求;
l 编写http请求:
1. 协议:默认为https;
2. 服务器名称:m.jd.com;
3. 端口号:443
4. 请求类型:get;
5. 路径:/
脚本示例:
l 添加查看结果树:右键线程组,添加-监听器-查看结果树;
l 运行并查看:
03验证请求
l 选中要检查的HTTP请求,右键-添加-断言-响应断言
l 响应数据处可以发现"京东"字样,我们添加响应文本:
l 添加断言结果:右键线程组-添加-监听器-断言结果,运行脚本;(若断言不通过,此处会显示报错)
一般我们能拿到的接口api格式如下:
获取请求
从接口文档上我们可以得出如下信息(因上述接口申请需要时间,故实际请求以http://www.sojson.com/open/api/weather/json.shtml?city=北京为准):
7. 协议:HTTP;
8. 服务器名称:www.sojson.com;
9. 端口号:无;
10. 请求方法:GET;
11. 请求路径:/open/api/weather/json.shtml?city=北京
02编写请求
l 新建测试计划:文件-新建;
l 新建线程组:右键测试计划,添加-Threads(Users)-线程组;
l 添加http请求:右键线程组,添加-Sampler-HTTP请求;
l 编写http请求:
l 添加查看结果树:右键线程组,添加-监听器-查看结果树;
l 运行并查看,查看方式选择JSON:
添加断言
l 选中要检查的HTTP请求,右键-添加-断言-响应断言
l 响应数据处可以发现"上海"字样,我们添加响应文本:
l 添加断言结果:右键线程组-添加-监听器-断言结果,运行脚本;(若断言不通过,此处会显示报错)