zoukankan      html  css  js  c++  java
  • Jmeter学习之— 参数化、关联、断言、数据库的操作


    一、 Jmeter参数化
    1、 文件参数化
    解释:
    创建测试数据,将数据写入TXT文件文件中,然后Jmeter从文件中读取数据。例如用户注册
    操作:
    1、 首先在Jmeter下创建一个线程组,如下图:

    2、 然后添加一个用户注册的HTTP请求。响应的接口信息如下图:

    3、 添加完成HTTP请求后,通过接口文档进行HTTP请求的完善,如下图:

    4、 创建参数化的文件,对用户名和密码进行参数化,参数化文件如下图(注意最后一行不要有空格):

    5、 添加CSV Data Set Config组件,如下图:

    各个参数项解释如下:

    6、 编辑用户注册请求将用户名和密码进行参数化设置,如下图:

    7、 添加查看结果数,作用可以对运行的结果进行查看,如下图:

    8、 点击线程组设置循环次数为3,然后点击界面上的运行按钮,如下图:

    9、 通过观察结果树,可以看出三次请求的参数和TXT中的数据是一致的说明 参数化成功;同时响应数据都是注册成功,说明接口调用也是成功的。如下图:

    2、 用户定义的变量
    说明:这种就是为了方便管理参数,只能有一个值,通常用在一个不经常变换的量上。比如说IP地址
    1、 用户定义变量的添加如下图:

    2、 配置说明

    key就是这个参数的名称,也就是你在脚本里面取的值,value就是具体值了。在取参数化的值的时候,使用${ip}这样去取值,name就是你取的变量名称
    示例如下:

    3、 函数助手
    函数助手的话可以随机按照规则生成一些参数,比如生成随机数,随机数取当前时间等。最长用的就是如下两种
     _Random,可以在你指定的一个范围内取随机值
    1、函数的选取位置

    2、函数的参数介绍

    3、函数的调用和参数化调用方式一样,只需要将上图生成的参数名,复制到需要参数化的位置进行参数的替换即可。
     _time,如果在有一些需要传时间的情况下可以使用,日期格式是:yyyy-MM-dd HH:mm:ss、yyyyMMddHHmmss
    1、函数的选取位置,同上
    2、函数的配置介绍

    3、使用方法同上
    补充:
     _UUID
    说明:这个就是每次会生成一个随机的uuid,都是唯一的
    1、 函数的选取位置,同上
    2、 函数的配置介绍

    3、使用方法同上
    二、 Jmeter关联
    1、 关联的定义:将服务器返回的动态的变化的一个值,把他保存为一个参数,以供脚本里面后边需要用到参数化的地方进行使用
    2、 关联的目的
    脚本值写死,但是服务器返回值每次都是动态的不可预期的,服务器用不同的值做业务处理,进行校验,所以需要关联
    3、 通过jsonpath插件进行数据的关联
    通过添加金币的请求来说明关联的配置操作
    1、 添加金币的接口参数说明

    2、 因为添加金币的操作需要获取用户登录成功的session所以我们需要对登录后的session进行参数数的设置。在这里我们使用jp@gc - JSON Path Extractor(插件需要下载)插件进行数据的关联
    3、 根据接口文档添加登录及添加金币的HTTP请求(sample>HTTP请求),同时添加察看结果树(监听器>查看结果树),由于金币操作需要用户登录的session所以还需要添加cookie管理器(配置原件中>HTTP Cookie管理器);配置完成后如下图:

    4、 JSON Path Extractor的添加如下图所示:

    5、 JSON Path Extractor配置说明,如下图:

    JSonPath Expression值的配置说明:
    先来看一下登录返回的值

    登录成功后返回的是一个json格式的结果,它都是key:value的格式,我们要取的值为sign的值;通过观察我们可以看到sign在login_info的value值中,所以我们要取Sign的值就可以写成 $.login_time.sign,配置如下图:

    配置完成后,需要将该出关联引用到HTTP Coolie管理器中,如下图:

    6、 运行结果,如下图所示:
    登录请求中的sign值

    金币操作获取到的值:

    三、 Jmeter断言
     Jmeter中的断言相当于是LR中的检查点作用就是检查数据的返回结果是否正确。如果正确的话,就代表这个请求的返回是正确的,如果没有的话就代表这个请求的结果和我们预期的不一致,这样我们就可以通断言来检查返回结果,测试是否通过。
     断言的添加如下图:

     断言的参数说明:

    四、 Jmeter对数据库的操作
    1、 导入jdbc的jar包,因为jmeter本身不能直接连接mysql,所以需要导入第三方的jar包,来连接mysql;导入方法选择测试计划本身,然后在界面右下角有浏览,打开进行jar包的导入,如下图:

    2、 创建数据库连接配置,mysql的url、端口号、账号、密码(即获取数据库的相关信息,比如IP、端口等)
    3、 添加一个JDBC Connection Configuration,如下图:

    4、 配置JDBC Connection Configuration,指定数据库URL、JDBC驱动类、数据库连接用户名和密码,如下图:

    jdbc:mysql://x.x.x.x:3306/数据库名?allowMultiQueries=true
    IP地址:为数据库的IP地址;
    Jxz为要连接的数据库名称
    allowMultiQueries=true,如果不加该语句只能写一条SQL语句,添加后可以写多条
    characterEncoding=UTF-8,可以解决插入数据库的乱码问题
    5、 添加JDBC request请求,如下图:

    添加完成后,就可以写SQL语句进行数据查询、修改等操作了,如下图:

    Query Type参数说明:
      Select Statement:只能执行select语句
      Update Statement:可以执行insert和update语句
      Callable Statement:可以执行所有的SQL语句

     ================================================================

                如有错误,欢迎指正!  

  • 相关阅读:
    (Java实现) 洛谷 P1106 删数问题
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1028 数的计算
    (Java实现) 洛谷 P1553 数字反转(升级版)
    (Java实现) 洛谷 P1051 谁拿了最多奖学金
    (Java实现) 洛谷 P1051 谁拿了最多奖学金
    (Java实现) 洛谷 P1106 删数问题
    目测ZIP的压缩率
  • 原文地址:https://www.cnblogs.com/beginner-boy/p/8556486.html
Copyright © 2011-2022 走看看