今天在做接口测试的时候,有一个查询的接口,虽然执行完返回的数据是成功的,但是还是想要验证下数据的正确性,这就应用到了从mysql数据查询出数据,然后再与数据库查询的数据对比这样一个场景,因涉及到一小部分java代码,特此记录个简单的。

1.首先要下载mysql的驱动。可将mysql-connector-java-5.1.45-bin.jar包放到jmeter的lib目录下,重启jmeter,也可以直接在测试计划里在测试浏览添加。如图所示:

jmeter 连接mysql数据库,并将查询数据与响应数据对比

2.测试计划下新建个线程组,在线程组右键-->配置元件-->用户定义的变量,编写用于校验的值,这里我直接拿一个id做例子。jmeter 连接mysql数据库,并将查询数据与响应数据对比

3.在线程组中右键,配置元件-->添加jdbc connection configuration,并配置连接参数。其中database_url = 'jdbc:mysql://*.*.*.*:3306/tenant?useUnicode=true&characterEncoding=utf8'

jmeter 连接mysql数据库,并将查询数据与响应数据对比

3.继续在线程组下添加sampler-----jdbc request,设置sql语句。

jmeter 连接mysql数据库,并将查询数据与响应数据对比

4.右键新建BeanShell PostProcessor,输入以下代码。

jmeter 连接mysql数据库,并将查询数据与响应数据对比

5.右键新建BeanShell 断言,输入以下代码。

jmeter 连接mysql数据库,并将查询数据与响应数据对比

6.添加【察看结果数】,如果数据不一致,提示如下:

jmeter 连接mysql数据库,并将查询数据与响应数据对比

如果数据一致,则是绿色通过图标。

遇到的问题:

在使用select语句在数据库查数据的时候,使用到jmeter中查询数据为空,后来经过排查,是因为select语句中含有中文字符的缘故,这是因为JDBC Request里面的sql语句包含了中文,jmeter识别不了这就需要对它进行编码,才可以查询成功。解决办法:就是在JDBC 的连接中,增加useUnicode=true&characterEncoding=utf8这段代码

jmeter 连接mysql数据库,并将查询数据与响应数据对比

 

相关文章:

  • 2021-06-12
  • 2021-08-10
  • 2022-01-06
  • 2021-11-15
  • 2022-01-13
  • 2021-04-12
  • 2022-12-23
  • 2021-03-31
猜你喜欢
  • 2021-06-05
  • 2022-01-20
  • 2021-07-29
  • 2021-11-23
  • 2021-11-28
  • 2021-12-24
  • 2022-01-16
相关资源
相似解决方案