【问题标题】:CSV data set is getting executed before the JDBC sampler requestCSV 数据集在 JDBC 采样器请求之前执行
【发布时间】:2018-06-18 13:53:43
【问题描述】:
  1. 我正在对多个并发用户执行登录测试。
    1. 我创建了一个 JDBC 请求以从患者那里获取用户名和密码 桌子。然后在 BeanShell 断言。
    2. 现在在 CSV 数据集配置Test.csv 中传递此文件名。
    3. 我可以同时登录多个用户,但遇到一个问题: 当我第一次运行测试时。该文件在同一位置不可用,因为它是在执行线程组之后创建的。 如果文件不存在,我会在日志中看到:文件 Test.csv 必须存在并且可读

为了执行相同的流程,我所做的是,保持 JDBC 请求是不同的测试计划。首先执行该测试计划,然后进行登录。

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

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    Jmeter执行顺序是:-

    0-配置元素

    1-预处理器

    2-定时器

    3-采样器

    4-后处理器(除非 SampleResult 为空)

    5-断言(除非 SampleResult 为空)

    6-Listeners(除非 SampleResult 为空)

    由上可知,“csv data config”会先于JDBC采样器执行。

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

    Apache Groovy - Why and How You Should Use It

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      原因是 CSV 数据集配置是 Configuration Element 并且根据测试元素 Execution Order 它在其他任何事情之前被初始化。

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

      还要注意,根据来自 Beanshell 或其他脚本语言的 JMeter Best Practices it is recommended to switch to JSR223 Test Elements

      【讨论】:

        猜你喜欢
        • 2021-05-01
        • 2021-10-31
        • 1970-01-01
        • 1970-01-01
        • 2019-09-14
        • 2015-12-27
        • 1970-01-01
        • 2021-12-11
        • 1970-01-01
        相关资源
        最近更新 更多