zoukankan      html  css  js  c++  java
  • JMeter(5)、测试数据库

    ·测试一般什么时候需要去操作数据库呢?

    ·详细设计阶段,针对数据库进行测试。

    范式、表名、表字段、类型的检查、测试等。

    1、需要用到数据库的场景

    ·1根据测试用例去构造测试数据。

    ·2查询数据库的数据、获取预期结果。(使用JDBC后置处理器)

    ·3查询数据库的数据、作为测试的输入。(使用JDBC前置处理器)

    ·4查询数据库的数据、判断业务操作是否成功。(使用JDBC后置处理器)

    ·5性能测试。

    2、JMeter操作数据库

    1.Jmeter如何去操作数据库呢?

    Jmeter是一个java应用,所以对于数据库的操作是通过JDBC的方式来实现的。那就意味着要使用Jmeter完成对数据库的测试,需要用户自行根据实际情况去下载相应的数据库的JDBC驱动,如:mysql-connector-java-5.1.20-bin.jar。驱动下载之后,将jar包放入Jmeter的lib目录。

    在Jmeter中,针对数据库进行测试的话,常用到的组件有四个:

    1、JDBC Connection Configuration:实现JDBC连接配置,属于必选组件。

    2、JDBC Request:JDBC请求、是用来实现数据库请求的。结果会计入查看结果树和聚合报告

    3、JDBC前置处理器:是用来在不同的协议请求之前去实现相关的数据库操作。

    比如说:测试数据的初始化、查询数据作为请求参数等。结果不会计入查看结果树和聚合报告

    4、JDBC后置处理器:是用来在不同的协议请求之后去实现相关的数据库操作。

    比如说:测试数据的还原、查询数据作为检查条件等。结果不会计入查看结果树和聚合报告

    PS:JDBC Request、JDBC前置处理器、JDBC后置处理器这三个组件的配置选项基本一致,只是用途不同、使用场景不同而已。

    2.各组件配置

    1·JDBC Connection Configuration:

    Variable Name:变量名称,由用户自定义的,用来标识JDBC连接配置器,在后续的JDBC请求组件中需要用到。

    Validation Query:select 1,用来测试连接

    Database URL:数据库的链接地址,不同类型的数据库,写法不一样。如果遇到解析Date异常,在URL后面加参数:

    ?useUnicode=true&characterEncoding=gbk&zeroDateTimeBehavior=convertToNull

    JDBC Driver class:不同类型的JDBC驱动中的Driver类的package路径,包括类名本身。不同类型的数据库是不一样的。

    PS:URL和Driver class在Jmeter的帮助是有示例的。

    用户名:具有访问权限的数据库用户名。

    密码:用户的密码。

    2·JDBC Request的配置:

    ·Variable Name:该处填写的是在JDBC Connection Configuration组件中所设置的Variable Name,表示使用对应的JDBC Connection Configuration组件来实现数据库连接。

    ·Query Type:请求类型,可选的类型如下:

    ·Select StateMent:表示执行的sql是select语句。

    ·Update StateMent:表示执行的SQL是增删改类操作。关键字:update、insert、delete、create、drop等。

    ·Callable StateMent:主要是用来调用存储过程的,但是也可以用来实现其它所有SQL请求。

    ·PrePared Select StateMent:表示执行的sql是select语句,但是允许在SQL语句中通过?来实现传参(SQL层面的传参,不是Jmeter)。

    ·PrePared Update StateMent:类似于Update StateMent,表示执行的SQL是增删改类操作。但是允许在SQL语句中通过?来实现传参(SQL层面的传参,不是Jmeter)。

     

    PrePared类型的专属选项有以下两个

    ·Parameter values:该处填写的就是需要传递给带?的SQL的参数值。参数值的数量、顺序和SQL语句中的问号保持一致。参数值之间使用逗号分隔。如:35,male

    ·Parameter Types:该处填写的是参数的类型,数量、类型和Parameter values保持一致,要求大写,使用逗号分隔。如:INTEGER,VARCHAR

     

    通用选项

    ·Variable Names:该处可以填写的是由用户自定义的变量名称,用来存储SELECT语句查询的结果。

    1·变量名称可以有多个,使用逗号分隔。

    2·变量是按照顺序去存储查询结果,一个变量存储一列值,即第N个变量存储结果中的第N列值。

    3·存储方式采用的是数组方式,下标是从1开始,即下标1表示当列的第一个值。下标N表示第N个值。并且每一个变量都会有一个隐藏的参数叫:Vname_#=N,用来存储值的个数

  • 相关阅读:
    在蓝鲸标准运维上进行原子开发二
    python 使用eval报错NameError: name ‘null’ is not defined
    前端时间转换 2019-08-18T16:00:00.000Z 转换成格式2019-08-18
    python list排序
    Django 分页Paginator的简单用法
    蓝鲸ESB自定义组件的部署步骤
    Unity对象池的实现
    Unity3D UGUI实现Toast
    C#中扩展方法的使用
    Unity3D实现多语言切换
  • 原文地址:https://www.cnblogs.com/yjh1995/p/12578467.html
Copyright © 2011-2022 走看看