• 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语句

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

                如有错误,欢迎指正!  

  • 相关阅读:
    架构,改善程序复用性的设计(目录)
    如何让你的系统配置文件更合理
    MVC验证(自动在基类中验证实体的数据有效性),本人最满意的作品之一
    MVC验证(只验证指定字段)
    Redis学习笔记~实现消息队列比MSMQ更方便
    FRG图像文件格式(四):编码技术
    缓冲区
    Oracle体系结构及备份(十一)——bcakgroundprocess
    Excel编程(2)自动填充
    设计模式:策略模式
  • 原文地址:https://www.cnblogs.com/beginner-boy/p/8556486.html
Copyright © 2020-2023  润新知