【问题标题】:J-Meter if value does not exist in CSV omit it entirely in POSTJ-Meter 如果值在 CSV 中不存在,则在 POST 中完全省略它
【发布时间】:2014-01-30 17:04:00
【问题描述】:

我有四个变量:

网址

uuid

affiliate_type

custom_url

csv 中的行示例(\t 分隔)

1) http://home.com/home123:F7zBnMyn0Loshomei 3 http://home.net

2)http://home2.com/defjkl456sshomei 4

请求:

1.) POST 数据: url=http%3A%2F%2Fhome.com%2Fhome123%3AF7zBnMyn0Lo+&uuid=sshomei&affiliate_type=3&custom_url=http%3A%2F%2Fhome

2.) POST 数据: url=http%3A%2F%2Fhome2.com%2Fdefjkl456&uuid=sshomei&affiliate_type=4&custom_url=

我的主要问题是,如果 没有价值 存在,有没有一种简单的方法可以完全删除 &custom_url= ?我有大量文件,需要测试数百万个请求。我不希望根据它们有多少变量来分解文件。

感谢您的宝贵时间,

约翰

【问题讨论】:

    标签: csv jmeter jmeter-plugins


    【解决方案1】:

    您可以通过以下方式构建 url:http%3A%2F%2Fhome.com%2Fhome123%3AF7zBnMyn0Lo+&uuid=sshomei&affiliate_type=3${CUSTOM_URL} 其中 CUSTOM URL 是用户定义的变量。在 PreProcessor 中,您可以比较从文件中读取的自定义 url 是否等于空字符串

    if(targetString.equals(''))
    {
       vars.putObject("CUSTOM_URL",'');
    }
    else 
    {
       vars.putObject("CUSTOM_URL",valueReadFromCSV.toString());
    }
    

    【讨论】:

    • 这很有帮助。我只是不确定要使用什么预处理器(JDBC、BSF、JSR223、beanshell?)。在 beanshell 中,我尝试将要传递的参数设置为 ${custom_url} 和 custom_url。你必须告诉线程组使用预处理器吗?抱歉这些问题。再次感谢您的帮助!
    • 我个人更喜欢使用 BSFPreprocessor,因为它允许我使用 Groovy 语言编写脚本。如果您将所需的 jar 添加到 lib 目录中,则可以使用您喜欢的语言。 BeanShell PreProcessor 允许您使用 java 编写代码而无需添加额外的 jar。我假设您使用的是 http 请求,所以将 PreProcessor 添加到该请求中。
    • 我正在使用 CSV 数据集配置属性从文本文件中读取每一行。我完全理解您的意思,但仍然丢失了诸如在该请求中添加预处理器的位置等。非常感谢您的帮助。这是我的设置imgur.com/a/FccKf
    • 我的意思是 CUSTOM_URL 是用户定义的变量 jmeter.apache.org/usermanual/… 但我在您的测试计划中没有看到这样的元素。我敢打赌,如果打开错误日志,您会遇到异常(单击带有感叹号的黄色三角形——它在右上角)
    • 理想情况下,我不希望必须定义数千个用户定义的变量。每个 URL 要么有 custom_url,要么没有。我真的想要一种基于字段是否存在于 csv 行上来构建 URL 的方法。 http://test.com/test123:F7zBnMyn0Lo sstesti 3 http://testhttp://test2.com/defjkl456 sstesti 4
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 2022-01-16
    • 2021-11-28
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    相关资源
    最近更新 更多