zoukankan      html  css  js  c++  java
  • Jmeter常用功能的介绍

    Jmeter跟postman都是接口测试的最常用工具,但Jmeter还可以进行压力测试,这点就挺好。下面就介绍一下使用方法和功能:

    一、jmeter 的下载跟安装

    http://jmeter.apache.org/download_jmeter.cgi   这是下载安装包的地址,下载后解压,D:apache-jmeter-3.1injmeter.bat  不需要安装,直接双击jmeter.bat就可以进入界面了。

    * 因为jmeter是java开发的,因此需要提前安装java jdk1.8+

    二、线程组,一个项目用一个线程组,测试计划 -> 添加 -> Threads -> 线程组

    三、我们添加了线程组之后,就开始添加请求了,右键线程组, 添加 -> sampler -> http请求

    一个http请求就是一个接口,开始配置各个参数:

    端口号我们设置为80,这样一个get请求就设置好了。

    下面在来一个post 方式的请求:

    post方式的提交跟 get不同的是,有 request body,在Body Data里设置json格式的数据,作为提交到服务器的参数。

    三、那么我们提交了请求,现在就应该看看结果了,这时候在所在请求上,右键 -> 添加 -> 监听器 -> 观察结果树

    在实际工作中,我们都是一个请求对应一个结果树。

    下面有三个选项卡,通过查看请求跟响应数据可以看到我们想要的数据。返回的请求结果。

    四、经常遇到入参变动,这时候可以考虑,将其设置为变量,jmeter提供了三种方式设置变量

    1、用户自定义变量 :

    在所在的请求上右键,添加、配置元件、用户自定义变量。

    定义好了,如何引用呢? ${domain} 通过这个就可以了。

    3、用CVS文件读取:

    在所在的请求上右键,添加、配置元件、CVS Data Set Config。

     第二种不常用就不说了。

    五、有一种情况就是,服务器域名、端口、协议、编码都是相同的,那么我们没有必要每一个请求都添加一遍,这个时候可以使用,http请求默认值:

    右键测试计划、添加、http默认请求。

    六、我们在接口请求的时候经常是处于登录状态下的,没有cookie或者token,无法请求一些私密性的接口:

    所在请求上右键、添加、配置元件、cookie管理器,在里面设置三个参数,key value domain

    七、jmeter断言提供了几种方法,我喜欢bean shell函数,比较灵活:

    所在请求上右键、添加、断言、bean shell断言,

    String response = "";

    // Str  就是接口的一个字段,  response就是接口内容
    String Str = ""externalSignInProviders":[{"provider":"WeChat","providerDisplayName":"微信"},{"provider":"QQ","providerDisplayName":"QQ"},{"provider":"GitHub","providerDisplayName":"GitHub"}]";
    response = prev.getResponseDataAsString();
    if(response == ""){
    // 设置断言失败为真
    Failure = true;
    FailureMessage = "系统无响应,获取不到响应数据!";
    log.info(FailureMessage);

    }
    else if(response.contains(Str) == false){
    // 设置断言失败为真
    Failure = true;

    String Msg = " 系统返回响应结果与期望结果不一致!请排查是性能问题,还是程序代码问题";
    FailureMessage = Msg + " " + "期望结果: " + Str + " " + "响应内容: " + response +" ";
    log.info(FailureMessage);
    }else{
    // 设置断言失败为假
    Failure = false;
    log.info("期望结果: " + Str + " " + "响应内容: " + response +" "+"一致通过");

    }

    八、 有的时候,上一个请求返回的接口中提取指定的值,用来做下一次请求的参数,就叫做接口关联,我喜欢使用json提取。还可以使用正则表达式提取。

    所在请求上右键、添加、后置处理器、json extractor,

    先看看接口结果:

    {"publicKey":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCp0wHYbg/NOPO3nzMD3dndwS0MccuMeXCHgVlGOoYyFwLdS24Im2e7YyhB0wrUsyYf0/nhzCzBK8ZC9eCWqd0aHbdgOQT6CuFQBMjbyGYvlVYU2ZP7kG9Ft6YV6oc9ambuO7nPZh+bvXH0zDKfi02prknrScAKC0XhadTHT3Al0QIDAQAB","externalSignInProviders":[{"provider":"WeChat","providerDisplayName":"微信"},{"provider":"QQ","providerDisplayName":"QQ"},{"provider":"GitHub","providerDisplayName":"GitHub"}],"externalSignedIn":null}

    根据接口的结构,这样添加就可以了。

    * 注意请求的顺序,必须是提供参数的请求在先,接收参数的请求靠后。

  • 相关阅读:
    css引入方式
    HTML标签
    动态导入模块impoerlib
    pymysql连接数据库
    创建数据库表之引擎
    IO多路复用互动聊天,select函数监听
    欧拉筛法求素数个数
    与三角形相关的问题 WITH 有向面积
    时间复杂度的计算
    折半查找
  • 原文地址:https://www.cnblogs.com/huaniaoyuchong/p/13809266.html
Copyright © 2011-2022 走看看