zoukankan      html  css  js  c++  java
  • day1_jmeter接口测试

    一、Jmeter-http接口脚本:

    步骤:

    1、添加线程组

    2、添加http请求

    3、在http请求中写入接口url、路径、请求方式、参数

    4、添加查看结果树

    5、调用接口、查看返回值

     

    二、Jmeter之HTTP信息头管理器

     HTTP信息头管理器在Jmeter的使用过程中起着很重要的作用,通常我们在通过Jmeter向服务器发送http请求(get或者post)的时候,往往后端需要一些验证信息,比如说web服务器需要带过去cookie给服务器进行验证,一般就是放在请求头(header)中,因为对于此类请求,在Jmeter中就可以通过HTTP信息头管理器,在添加http请求之前,添加一个HTTP信息头管理器,发请求头中的数据通过键值对的形式放到HTTP信息头管理器中。在往后端请求的时候就可以模拟web携带header信息了

    线程组>添加>逻辑控制器>HTTP信息头管理器

     

    三、Jmeter-参数化

    Jmeter参数化的方式有三种

    1、用户定义的变量

    • 这种就是为了方便管理参数,只能有一个值,比如说ip地址不经常变化的

    2、函数生成器

    • 函数生成器可以参照一定的规则生成数据,这样的比如说生成一些随机数

    3、从文件中读取

    • 文件读取就是事先写好一些数据,然后从文件中读取,这样的话,比如说登录接口,账号和密码都是我们事先注册好的

    1、参数化-用户定义的变量

    在线程组中添加一个用户定义的变量,然后写key和value就可以了,key就是这个参数的名称,也就是你在脚本里面取的值,value就是具体值了。在取参数化的值的时候,使用${name}这样去取值,name就是你取的变量名称

     

     

     

     

    2、参数化-函数生成器

    几种函数:

    __random:可以在指定范围内随机取值

     

    __counter函数:用于统计函数的使用次数

    每次调用计数器函数都会产生一个新值,从1开始每次加1。计数器既可以被配置成针对每个虚拟用户是独立的,也可以被配置成所有虚拟用户公用的。如果每个虚拟用户的计数器

     

    __time:取当前时间到变量

    时间格式,支持,年yyyy,月MM,日dd,时hh,分mm,秒ss,毫秒sss,之间任意符号连接,/1000就是10位时间戳(精确到秒),不填就是精确到毫秒13位时间戳

     

    3、参数化-从文件中读取-CSV Data Set Config

    从文件中读取的话,三个步骤

    1、读取文件

    2、取文件内容里面的参数,给它一个名字

    3、使用值

    从文件读取的话,需要在线程组里面添加一个CSV Data Set Config,它就是做前面两步的操作的

     

       如果有多列,则逗号隔开分别起名

     

    如果文件不写绝对路径,只写一个文件名,那么你就把你的文件放到jmeter的bin目录下就ok了

    备注:

     

    四、关联-JSON Extractor

    1、关联也就是:  

             1)调用第一个接口,然后从这个接口的返回数据里面拿到某个值

             2)放到第二个接口里面来用。

    接口响应结果,通常为HTML、JSON格式的数据,对于HTML的响应结果的提取,可以通过正则表达式,也可以通过XPath 来提取。

    对于JSON格式的数据,可以通过正则表达式、JSON Extractor插件、BeanShell 来提取。

    本次说下如何通过JSON Extractor 插件来提取JSON响应结果

     

     

    • Variable names:保存的变量名,后面使用${Variable names}引用

    • JSON Path  expressions:调试通过的json path表达式

    • Match Numbers:匹配数字(0代表随机,1代表第一个,-1代表所有)

    • Default Values:找不到时默认值,一般设置为NOT FOUND

    • Compute concatenation var(suffix_ALL):是否统计所有,即将匹配到的所有值保存,名为“变量名_ALL”

    2、举例:

    响应结果为:

    {

            "error_code": 0,

            "login_info": {

                    "login_time": "20180814094236",

                    "sign": "3f823a72b517ff6c36f95635d8a741f1",

                    "userId": 1

            }

    }

    获取登录接口的sign值,则表达式为:$.login_info.sign($表示当路径 .表示下一层及 意思为:当前路径下的login_info下的sign)

     

    调用jp@gc - JSON Path Extractor

     备注: JSON中 data 是一个对象数组, data[0] 代表取的是第一个对象数组,data[*] 代表取全部。

    3、可添加Debug Sampler查看调用结果

    打开测试计划—>线程组—>右键,添加—>Sampler,Debug Sampler

  • 相关阅读:
    14 微服务电商【黑马乐优商城】:day06-使用nginx反向代理并掌握cors解决跨域
    Docker容器化【Docker安装与启动&Docker镜像与容器相关命令】
    [LeetCode]Palindrome Number 验证回文数
    C++结构体定义构造函数
    C++中explicit关键字的使用
    C++ const关键字
    图像梯度(Image Gradient)
    ORB特征点匹配
    c++:internal compiler error:killked(program cclplus) 解决办法
    最小二乘通俗解释
  • 原文地址:https://www.cnblogs.com/once-again/p/9473111.html
Copyright © 2011-2022 走看看