- 什么时候用抓包?
定位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 就是bug
if(d<10){
// 设置执行失败
Failure=true;
// 失败提示信息
FailureMessage = "价格小于10";
}
if(d>100){
Failure=true;
FailureMessage = "价格大于100";
}
}
beanshell 前置处理
Mock Server
mock server也叫挡板系统。
在测试过程中,需要跟第三方系统进行数据交互的时候,比如查征信,支付,可以使用 挡板系统模拟一条假数据。
一些大的公司内部都有自己的挡板系统,功能都是类似的,下面使用常用的工具来演示。
postman
postman提供mock service功能,需要注册postman的账号才能使用。