• 接口测试 从 0 到 1,用 Jmeter 搭建 HTTP 接口自动化引擎 1.0 版本


    百度网盘地址更新:https://pan.baidu.com/s/13S0WStZpwlbL15IBp_Q-bg

    1、已实现功能描述

    1.1 框架包含:Jenkins、Ant、Jmeter

    1.2 测试用例来源:.csv文件

    如图:

     

    1.3 报警邮件

    • 失败用例内容:详细说明失败用例的所有信息
       
    • 失败用例组统计及附件:
       
    • 附件内容包括
    • 测试用例执行摘要:
       
    • 测试用例详细信息:
       

    1.4 自动化测试执行需要修改内容

    • 编写测试用例

       
    • 修改用例文件地址

       
    • 修改报告附件地址

       

    2、接口自动化引擎逻辑详解

    2.1 引擎框架

     

    2.2 引擎逻辑描述

    2.2.1 全局变量设计

     

    2.2.2 测试用例文件导入

     

    2.2.3 http头信息管理

     

    2.2.4 http cookie信息管理

     

    2.2.5 判断用例文件中用例是否需要测试

     

    2.2.6 判断http请求是post还是get

    • 如果http请求是post
       

    2.2.7 post请求配置逻辑

    • 获取post请求数据
       
    • BeanShell断言内容
       
      断言内容解析:
    int errcount = Integer.parseInt(vars.get("errcount").trim());    //统计失败用例数
    int allcount = Integer.parseInt(vars.get("respcount").trim()); //统计用例组的用例数
    if(SampleResult.getResponseCode().equals("200") && SampleResult.getResponseDataAsString().contains("${ResponseData}")){ //判断 状态码和断言内容
    SampleResult.setSuccessful(true); //如果状态码和断言都匹配成功,标记该用例通过
    vars.put("sendemail","no"); //标记不需要发送报警邮件
    allcount++; //用例数+1
    vars.put("respcount",allcount.toString()); //把当前已执行用例数保存到全局变量中
    }else { //如果状态码或断言,有一个不匹配
    errcount++; //失败用例数+1
    allcount++; //用例数+1
    SampleResult.setSuccessful(false); /标记该用例执行失败
    String code = SampleResult.getResponseCode(); //获取状态码
    String msg = SampleResult.getResponseMessage(); //获取响应信息
    String data = SampleResult.getResponseDataAsString(); //获取响应Body
    vars.put("Reqstauts","requestNook"); //标记该用例状态为 requestNook
    vars.put("respcode",code); //保存状态码到全局变量
    vars.put("respmsg",msg); // 保存响应信息到全局变量
    vars.put("respdata",data); //保存响应body到全局变量
    vars.put("errcount",errcount.toString()); // 保存失败用例数到全局变量
    vars.put("respcount",allcount.toString()); //保存统计用例数到全局拜纳凉
    vars.put("sendemail","yes"); //修改全局变量sendemail为yes,发送报警邮件
    }
    • 判断是否发送邮件
       
    • 利用SMTP Sampler发送邮件
       

    2.2.8 get请求配置逻辑

     

    2.2.9 所有用例执行完毕,发送报警邮件

     
    • 邮件内容如下:

       
    • 至此,Jmeter HTTP接口自动化引擎搭建完毕
      还可以利用jenkins定时执行Jmeter引擎,从而实现对线上接口的监控

       

    资料参考:
    (1)Jmeter build.xml文件:http://pan.baidu.com/s/1i46tMlR
    (2)Jmeter生成报告格式(参考heman贺满博客http://www.cnblogs.com/puresoul/http://pan.baidu.com/s/1kVssMzl):
    (3)jmeter.properties(修改jmeter生成.jtl文件内容配置):http://pan.baidu.com/s/1cyaNlc
    (4)测试用例模版:http://pan.baidu.com/s/1hselPlU
    (5)Jmeter接口自动化引擎内容:http://pan.baidu.com/s/1geC34pt

  • 相关阅读:
    K-lord #1
    P1220 关路灯 (区间DP)
    P1136 迎接仪式 (动态规划)
    P1063 能量项链 (区间DP)
    444 D. Ratings and Reality Shows
    P1896 [SCOI2005]互不侵犯King
    P1841 [JSOI2007]重要的城市
    P1134 阶乘问题
    P1414 又是毕业季II
    P1450 [HAOI2008]硬币购物
  • 原文地址:https://www.cnblogs.com/wsy0202/p/11278845.html
Copyright © 2020-2023  润新知