Data-Driven Testing

   当我们一遍又一遍地运行相同的查询时,数据库并不总是构建新的查询,而是重新使用以前的查询,以提高速度并优化性能。 这种缓存阻碍了我们测试我们脚本的能力。

   为了避免这个问题,您可以将具有不同变量的CSV文件合并到JMeter测试中。 这些变量定义在不同的列中,这些列可以在以后在JMeter中引用。

   在这里,我们正在使用我们始终使用的简单的旅行社演示。 列是源端口和目标端口,行是端口名称。

   Advanced Load Testing Scenarios with JMeter: Part 2 - Data-Driven Testing and Assertions_数据库  要合并变量,请将CSV配置元素添加到测试中。

  Advanced Load Testing Scenarios with JMeter: Part 2 - Data-Driven Testing and Assertions_伦敦_02


 根据您的列数填写文件名和变量名称。 在这个演示中,我们有两列。

  Advanced Load Testing Scenarios with JMeter: Part 2 - Data-Driven Testing and Assertions_采样器_03

   返回到采样器,并将参数名称从特定的更改为一般语法。 在这个例子中,从伦敦到$ {toPort}。

   Advanced Load Testing Scenarios with JMeter: Part 2 - Data-Driven Testing and Assertions_伦敦_04


   在运行测试之前,不要忘记更新线程组。 要确保您正在完成所有行,请更改循环数。 在这里,我们的CSV文件中有5行,所以我们经历了5个循环。

   Advanced Load Testing Scenarios with JMeter: Part 2 - Data-Driven Testing and Assertions_旅行社_05


  现在,运行测试以确保它正常工作。

  成功! 我们现在可以在“查看结果树”中看到电子表格中不同的结果组合,就像我们想要的那样。

  Advanced Load Testing Scenarios with JMeter: Part 2 - Data-Driven Testing and Assertions_采样器_06

  Advanced Load Testing Scenarios with JMeter: Part 2 - Data-Driven Testing and Assertions_电子_07

   现在让我们继续说断言。


Assertions

  断言对于确保测试成功显示非常重要。

   为什么不是? 因为即使JMeter将HTTP状态代码识别为已批准,有时显示页面的内容也是错误的。 例如,当接收到的响应代码为200 OK时,可能会发生这种情况,但是由于登录凭据不正确,我们仍然收到自定义错误。

   断言可帮助我们管理这种问题 - 它们确保在测试期间将预期内容回复给用户。

   要使用断言,请首先确定在向用户显示的响应中期望找到哪些数据。 从我们的例子回到网站,我们可以看到我们的响应消息包含特定的端口。 这可能是一个问题,因为我们有5种不同的组合。

   Advanced Load Testing Scenarios with JMeter: Part 2 - Data-Driven Testing and Assertions_采样器_08

   断言确保我们正在检查的所有值(从CSV文件)都在响应消息中,这意味着用户正在获得正确的响应消息。

   添加一个断言:Advanced Load Testing Scenarios with JMeter: Part 2 - Data-Driven Testing and Assertions_采样器_09


    在这种情况下,我们添加了一个响应断言,但有很多不同的类型:Size Assertion, comparing, looking into XML and JSON data, etc.等。

    响应断言可以应用于任何响应的组件,如报头,响应代码,主体,可能包含的任何非加密文档,甚至其子样本。 这里我们添加一个文本响应断言。

    要添加断言,您可以从应用程序中复制值,并将其添加到“要测试的模式”部分。 在这个例子中,我们更改端口变量以反映所有的组合,正如它所说:您从$ {fromPort}到$ {toPort}的航班已被保留。

    Advanced Load Testing Scenarios with JMeter: Part 2 - Data-Driven Testing and Assertions_伦敦_10

    运行测试 如果断言失败,JMeter会将其显示为错误。

     在输出中,我们可以看到测试成功,因为文本响应显示不同的端口组合。

     Advanced Load Testing Scenarios with JMeter: Part 2 - Data-Driven Testing and Assertions_电子_11

   Advanced Load Testing Scenarios with JMeter: Part 2 - Data-Driven Testing and Assertions_伦敦_12    如果添加了断言侦听器,您也可以看到这些成功的结果。