- 什么时候用抓包?
定位bug的时候
获取token值不方便的时候—抓包
- 你们系统中做接口测试测试 token值 是怎么来?
方式一: 通过接口获取token
- 用户注册成功之后回返回token值

b. 调用登录接口也可以获取token值
注册,登录接口中都有验证码,验证码是怎么处理的?
在测试环境中,我们开发会设置一个通用的万能码比如我们的验证码666666 测试环境中使用通用验证码。正式环境中会把通用验证码去掉。
方式二: 通过数据库获取token
通过登录数据库,token值是在 users 表中存放,写sql语句进行查询也是可以的。
select token from users where username="laozhang";
方式三:通过抓包

练习
根据api文档: https://www.kancloud.cn/niucloud/niushop_b2c_v4_api
测试添加购物车模块
测试要点:
- 添加购物车的时候 某些商品有数量限制,需要测试
- token值自己抓包获取
- 购物车中的商品信息 比如skuid 需要从别的接口中获取
- 上下游传参
- 对相关功能点进行有效的断言
- 单接口需要异常场景的测试支持
电商平台.postman_collection.json
电商平台.postman_environment.json
Jmeter断言
需要添加依赖库
jar_files.zip
将上面文件下载解压, 在测试计划中导入jar文件
beanshell 断言
import com.eclipsesource.json.JsonObject;import com.eclipsesource.json.JsonArray;import com.eclipsesource.json.JsonValue;// 1. 获取服务器返回的结果 prev.getResponseDataAsString() jMeter内置的方法// String 表示数据的类型,类型字符串, jsonString为变量名String jsonString = prev.getResponseDataAsString();// 2. 将字符串转换为 json 格式 JsonObject.readFrom 将字符串转换为json 个数的固定方法// JsonObject 是java语法中的json 类型 jsonData 为变量名JsonObject jsonData = JsonObject.readFrom(jsonString);JsonObject jsondt = jsonData.get("data");JsonArray jsonLists = jsondt.get("list");// for 循环遍历数据for (JsonValue value:jsonLists){// System.out.print(value.get("price"));// 获取价格字符串String price = value.get("price").asString();// 字符串转换为数字double d = Double.parseDouble(price);// 如果价格小于10 就是bugif(d<10){// 设置执行失败Failure=true;// 失败提示信息FailureMessage = "价格小于10";}if(d>100){Failure=true;FailureMessage = "价格大于100";}}
beanshell 前置处理
Mock Server
mock server也叫挡板系统。
在测试过程中,需要跟第三方系统进行数据交互的时候,比如查征信,支付,可以使用 挡板系统模拟一条假数据。
一些大的公司内部都有自己的挡板系统,功能都是类似的,下面使用常用的工具来演示。
postman
postman提供mock service功能,需要注册postman的账号才能使用。

