接口测试自动化测试之路

jmeter-小程序接口串联测试

2020-07-14  本文已影响0人  freedom_smile
背景:小程序前端研发接后台研发写的接口,后台研发实现后面的逻辑。每次后台一改动就在手机上面去点点相对应的流程,那有没有什么可以减少这些重复的操作呢?为此做了一个简化版的小程序接口流程测试。顺便还可以做下压力测试。
示例是一个商城小程序部分步骤:
  1. 添加线程:


    image.png
    image.png
  2. 添加常用的变量


    image.png
    image.png
  3. 添加http默认值


    image.png
    image.png
  4. 手机用fiddler或者是charles抓包,将所有的接口都汇集在jmeter中


    image.png
    image.png
    image.png
  5. 将此接口的返回参数提取出来作为后续接口请求参数使用
    image.png
    格式:$.result[0].goodsSpec[${i}].price
    取此接口返回的result列表的第一个,goodsSpec列表的取我自定义变量设置的值的第几个+1(从0开始,如果设置的i是1,那就是取列表的第2个值)下面的price字段的值
    image.png
    image.png
  6. 下个接口使用上个接口返回的参数示例:


    image.png
  7. beanshell 前置处理器,对数据(格式和值)进行处理


    image.png

    根据自己的需要设置,一般取默认值就行:


    image.png
// 导入相关的包
import java.text.*;
import java.util.Date;
import java.text.DecimalFormat;
import java.util.HashMap;

// 生成按年月日时分秒和随机数的订单号
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyMMddHHmmss");
String dateString = formatter.format(currentTime);
String orderNo = "on" +dateString + (int)(1+Math.random()*(99999-1+1));
vars.put("orderNo",orderNo);

// 购买数量 取自定义变量参数
quantity = Integer.parseInt(vars.get("quantity"));
// 销售价 取前面接口返回的变量参数
price = Double.parseDouble(vars.get("price"));
// 会员价
memberPrice = Double.parseDouble(vars.get("memberPrice"));
// 优惠金额
totalFavorPrice = Double.parseDouble(vars.get("totalFavorPrice"));
// 统一配送费 
goodsPackFee = Double.parseDouble(vars.get("goodsPackFee"));
// 总计金额
totalAmount = memberPrice * quantity + goodsPackFee;
// 支付金额
payAmount = totalAmount - totalFavorPrice
// 折扣金额
discountAmount = (price - memberPrice) * quantity;
// 下单商品属性 按需要修改参数的格式
name = vars.get("name");
specInfo = name.replace('"','\\"');

log.info("______________________________");
//log.info(memberPrice.toString());
//将处理完的参数放到变量里面去供后续参数化使用
vars.put("totalAmount",totalAmount.toString());
vars.put("discountAmount",discountAmount.toString());
vars.put("specInfo",specInfo.toString());
vars.put("payAmount",payAmount.toString());
  1. 有的接口请求格式是json格式,需要进行设置:


    image.png
    image.png
  2. 设置查看结果树(看具体请求返回数据),汇总报告(看相关结果)


    image.png
    image.png
    image.png

好了,后续后台一改动就可以运行一下所有接口,保证基本流程是对的了。
如果需要简单的压测,设置线程数和时间就好了,看结果。

上一篇 下一篇

猜你喜欢

热点阅读