Data-Driven Testing
当我们一遍又一遍地运行相同的查询时,数据库并不总是构建新的查询,而是重新使用以前的查询,以提高速度并优化性能。 这种缓存阻碍了我们测试我们脚本的能力。
为了避免这个问题,您可以将具有不同变量的CSV文件合并到JMeter测试中。 这些变量定义在不同的列中,这些列可以在以后在JMeter中引用。
在这里,我们正在使用我们始终使用的简单的旅行社演示。 列是源端口和目标端口,行是端口名称。
要合并变量,请将CSV配置元素添加到测试中。
根据您的列数填写文件名和变量名称。 在这个演示中,我们有两列。
返回到采样器,并将参数名称从特定的更改为一般语法。 在这个例子中,从伦敦到$ {toPort}。
在运行测试之前,不要忘记更新线程组。 要确保您正在完成所有行,请更改循环数。 在这里,我们的CSV文件中有5行,所以我们经历了5个循环。
现在,运行测试以确保它正常工作。
成功! 我们现在可以在“查看结果树”中看到电子表格中不同的结果组合,就像我们想要的那样。
现在让我们继续说断言。
断言对于确保测试成功显示非常重要。
为什么不是? 因为即使JMeter将HTTP状态代码识别为已批准,有时显示页面的内容也是错误的。 例如,当接收到的响应代码为200 OK时,可能会发生这种情况,但是由于登录凭据不正确,我们仍然收到自定义错误。
断言可帮助我们管理这种问题 - 它们确保在测试期间将预期内容回复给用户。
要使用断言,请首先确定在向用户显示的响应中期望找到哪些数据。 从我们的例子回到网站,我们可以看到我们的响应消息包含特定的端口。 这可能是一个问题,因为我们有5种不同的组合。
断言确保我们正在检查的所有值(从CSV文件)都在响应消息中,这意味着用户正在获得正确的响应消息。
添加一个断言:
在这种情况下,我们添加了一个响应断言,但有很多不同的类型:Size Assertion, comparing, looking into XML and JSON data, etc.等。
响应断言可以应用于任何响应的组件,如报头,响应代码,主体,可能包含的任何非加密文档,甚至其子样本。 这里我们添加一个文本响应断言。
要添加断言,您可以从应用程序中复制值,并将其添加到“要测试的模式”部分。 在这个例子中,我们更改端口变量以反映所有的组合,正如它所说:您从$ {fromPort}到$ {toPort}的航班已被保留。
运行测试 如果断言失败,JMeter会将其显示为错误。
在输出中,我们可以看到测试成功,因为文本响应显示不同的端口组合。
如果添加了断言侦听器,您也可以看到这些成功的结果。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。