美文网首页接口测试自动化测试之路
jmeter-小程序接口串联测试

jmeter-小程序接口串联测试

作者: freedom_smile | 来源:发表于2020-07-14 16:53 被阅读0次
    背景:小程序前端研发接后台研发写的接口,后台研发实现后面的逻辑。每次后台一改动就在手机上面去点点相对应的流程,那有没有什么可以减少这些重复的操作呢?为此做了一个简化版的小程序接口流程测试。顺便还可以做下压力测试。
    示例是一个商城小程序部分步骤:
    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

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

    相关文章

      网友评论

        本文标题:jmeter-小程序接口串联测试

        本文链接:https://www.haomeiwen.com/subject/ekqfhktx.html