性能平台测试(Jmeter)

1. 抓包确认接口数据

curl信息:

curl -H "Host: ng-apptest.transspay.net" -H "pp_req_sign: SZ4Zf5aMBn8VKgscJnTvG4ndEn9O8UVPZrphVyqfOePCN8eK%2Fy92ZWzM%2BDrSkyziOkbXkpy%2B0ozcLD5DlWMOb84s%2BgPNj1Vtzx0uaG4ilQzoku9I9oa0rEgMhe%2FPh8Rwt0p6%2Fi2W91ww3RBPPN0rJCFo7g%2B%2BOnuyQHpTYhx78NU%3D" -H "pp_timestamp: 1712129092601" -H "lastname: test" -H "birthday: 14/10/1996" -H "pp_token: cf693862-814b-48ee-a0a0-86be109c66dc" -H "pp_country_code: NG" -H "firstname: asd" -H "fullname: asd mod test" -H "nickname: way!@@#@$" -H "user-agent: PalmPay/2403291 CFNetwork/1492.0.1 Darwin/23.3.0" -H "countrycode: NG" -H "pp_client_ver: 5.5.0&2403291" -H "pp_req_sign_2: GR6UJwEhDaDW3T9jMABonFvYsw%2FjoQt7zEOTnMggRSix16CMDx%2F1EiJnRkauQWo7i7AXm%2FsEmgepqUKbYDpVZUDCarmhVclRrDH8hHHPUDuSsp4QqfxRUHBmVXUVPvM72xAFE00S42dKVIaH6%2Bm4a2BWBWRufyyn376gfegnRu4%3D" -H "phonenumber: 023409551234899" -H "email: " -H "middlename: mod" -H "accept-language: zh-CN,zh-Hans;q=0.9" -H "pp_client_ver_code: 2403291" -H "avatar: http://s3-ap-southeast-1.amazonaws.com/transsnet-android-upload-dev/A2E5AF8538D056AA0CA66261AF60D781" -H "pp_device_type: IOS" -H "accept: application/json, text/plain, */*" -H "content-type: application/json" -H "pp_device_id: A84076CC-2FC7-47C8-A1B6-0E2F5D693E52" --data-binary "{\"blackBox\":\"2IPV17120487035489ELuKeVP6\",\"billerId\":\"MTN\",\"billerName\":\"MTN\",\"icon\":\"https://s3-ap-southeast-1.amazonaws.com/transsnet-android-upload-dev/telecom/MTN3.png\",\"businessAmount\":10000,\"discountPackageId\":\"20240205030400000001\",\"sourceCategoryId\":\"11\",\"customerId\":\"023409551234911\",\"dataBundleItemName\":\"100MB-1 DAY-鈧�100.0\",\"paymentItemId\":\"s105113877047470\",\"paymentItemName\":\"100MB-1 DAY-鈧�100.0\",\"businessType\":5,\"categoryId\":\"6\",\"currency\":\"NGN\",\"fullName\":\"asd mod test\",\"familyAccountCheck\":false,\"verifyNetwork\":false,\"isBlackBox\":true,\"isClearMemberId\":true}" --compressed "https://ng-apptest.transspay.net/api/airtime/data/discountPackage/createBizOrder"

2. 调试jmeter脚本

2.1. 处理依赖jar包

需要引入的jar包放置进入jmeter的安装目录位置

路径:${jmeter安装目录}/lib 或者 ${jmeter安装目录}/lib\ext

2.2. 参数化变量数据

2.2.1. 时间戳参数化

2.2.2. 加密验签参数化

import jiami.RSAUtils;
import jiami.PalmPayUtil;
String PP_DEVICE_ID=vars.get("device_id");
String PP_DEVICE_TYPE=vars.get("device_type");
String PP_CLIENT_VER=vars.get("client_ver");
String times=vars.get("timestamp");
String token=vars.get("token");
String sign2="";
//vars.put("timestamp",times);

String sign=PP_DEVICE_ID+PP_DEVICE_TYPE+PP_CLIENT_VER+times+token;
//log.info(sign);
sign=RSAUtils.sign(sign.getBytes());
//System.out.println(sign);
vars.put("sign",sign);
if(sampler.getMethod().equals("POST") && sampler.getArguments().size()>0){
    def bodyData = sampler.getArguments().getArgument(0).getValue()
    //	log.info(bodyData)
    sign2=RSAUtils.sign(bodyData.getBytes());
}else{
    sign2=sign;
}
vars.put("sign2",sign2);

2.2.3. token参数化

2.2.4. 大部分数据支持直接调用swagger域名测试

使用swagger接口域名,不走网关,直接接口请求到业务服务器

swagger链接:

https://swagger-daily.transspay.net/swagger-ui.html?urls.primaryName=airtime#/%E6%B5%81%E9%87%8F%E8%AE%A2%E5%8D%95%E6%8E%A5%E5%8F%A3/createDiscountPackageBizOrderUsingPOST

说明:这个接口历史原因,服务接口直接处理的有点复杂,所以最后还是走的网关接口,手动处理验签的header逻辑。

如果简单接口,直接走swagger,直接处理 device_id 和 token 数据就好了,不用处理验签

2.2.5. 本地调试报告

2.2.5.1. 聚合报告:

2.2.5.2. 结果树报告

超出限流的合理提示:

{"respCode":"18","respMsg":"High traffic on data flash sales now, try again later"}

限流内,正确处理的相应:

3. 上传脚本上TPS

4. 配置TPS测试策略

4.1. RPS模式

4.2. 并发模式(常用)

4.3. 支持调试脚本

查看调试日志,根据实际错误手动调整

重点关注,采样器(Sample)的相应日志:

5. 查看压测报告

5.1. 报告在线链接

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

6. 分析报告

6.1. 结论:

平均11 TPS 的压力,500并发,

我们配置限制的流量为:1,压测5分钟的实际平均成功率为9.28%(接近10并发成功处理1的预期),

符合我们限流的目的,

且失败的均有返回产品预定的提示:High traffic on data flash sales now, try again later - - PASS

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值