CSV 数据集在 JDBC 采样器请求之前执行


  1. 我正在对多个并发用户进行登录测试。
    1. 我创建了一个 JDBC 请求来获取患者的用户名和密码 桌子。.CSV然后在 BeanShell 断言。
    2. 现在在 CSV 数据集配置测试.csv中传递此文件名。
    3. 我可以同时与多个用户登录,但遇到一个问题: 当我第一次运行测试时。该文件在同一位置不可用,因为它是在执行线程组之后创建的。 如果文件不存在,我将在日志中得到这个:文件测试.csv必须存在且可读

为了执行相同的过程,我正在做的是,保留JDBC请求是不同的测试计划。首先执行该测试计划,然后继续登录。

我想执行并保持两个请求是相同的测试计划。 还有一件事如果我在同一测试计划中对这些请求使用不同的线程组,仍然面临相同的问题。

Jmeter 执行顺序为:-

0-配置元素

1-预处理器

2 个定时器

3-采样器

4 后处理器(除非样本结果为空(

5 断言(除非样本结果为空(

6 个侦听器(除非样本结果为空(

基于上述,很明显,"csv 数据配置"将在 JDBC 采样器之前首先执行。

我能想到的是,如果您想在同一线程组中获取用户名/pwd,那么您可以使用 __setProperty(( 将用户名和密码设置为属性并使用 __property(( 获取它。为此,请在 JDBC 之后使用 JSR223 Post Process。 您也可以使用任何其他已知的后处理器/脚本语言,它只是 groovy 更适合性能测试。

Apache Groovy - 为什么以及如何使用它

希望对您有所帮助。

原因是CSV数据集配置是一个配置元素,根据测试元素的执行顺序,它先于其他任何东西进行初始化。

我建议改用 __CSVRead(( 函数,JMeter 函数在调用它们时进行评估,因此 Test.csv 文件在您从中获取凭据时将存在。请参阅 Apache JMeter Functions - 简介以熟悉 JMeter Functions 概念。

另请注意,根据JMeter最佳实践,建议从Beanshell或其他脚本语言切换到JSR223测试元素。

相关内容

最新更新