【问题标题】:Jmeter value to variable in stringJmeter值到字符串中的变量
【发布时间】:2012-08-30 02:39:56
【问题描述】:

文件被读入 Jmeter 后,如何替换文件 (a.xml) 中定义的变量? 例如。 a.xml 有内容。

<Shipment Action="MODIFY" OrderNo="${vOrderNo}" >

整个文件被读入一个字符串,使用 str_Input=${__FileToString(/a.xml)}

在 Jmx 文件中,发出一个 http 请求以从 web 服务获取输出为 使用 Xpath Extractor 将 OrderNo 的值读入变量 vOrderNo。

现在,想在 str_Input.. 中使用变量 vOrderNo 的值吗?我该怎么办?

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    您可以使用任何 jmeter 采样器中的 beanshell (~java) 代码轻松实现这一点,它允许执行 beanshell 代码 - BeanShell Sampler 例如..

    以下作品:

    
    import java.io.*;
    
    try
    {
        // reading file into buffer
        StringBuilder data = new StringBuilder();
        BufferedReader in = new BufferedReader(new FileReader("d:\\test.xml"));
    
        char[] buf = new char[1024];
        int numRead = 0;
        while ((numRead = in.read(buf)) != -1) {
        data.append(buf, 0, numRead);
        }
        in.close();
    
        // replacing stub with actual value
        String vOrderNo = vars.get("vOrderNo");
        String temp = data.toString().replaceAll("\\$\\{vOrderNo\\}", vOrderNo);
    
        // writing back into file
        Writer out = new BufferedWriter(new FileWriter("d:\\test.xml"));
        out.write(temp);
        out.close();
    }
    catch (Exception ex) {
        IsSuccess = false;
        log.error(ex.getMessage());
        System.err.println(ex.getMessage());
    }
    catch (Throwable thex) {
        System.err.println(thex.getMessage());
    }
    

    此代码不需要通过 ${__FileToString(...)} 将文件读入字符串。
    同样,您可以结合使用这两种方法。

    【讨论】:

    • 感谢Alies ...但我想知道是否可以使用Jmeter的内置功能而不必编写代码...做了一些研究,我认为这可能有效..但不确定如何实现它..任何想法? ${__eval( ${__FileToString(../ReferenceImplementation_1/Input_ChangeOrder.xml)})} 或 __evalVar 或 __V ???此外,避免在此处编写 java 代码的另一个原因是 .. 因为 XML 可能在运行时在其中定义了多个变量.. 所以我将无法编写 java 代码来替换特定变量..
    • 我认为这种方法也适用于我的情况stackoverflow.com/questions/8172297/…
    • 感谢 Alies 2011 年 11 月在该线程中的回复对我有用... ${__eval( ${__FileToString(a.xml)})}
    • 如果是这样很好。我只是发现使用 beanshell code-sn-ps 更加强大和灵活,但这只是一个偏好问题。
    猜你喜欢
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    相关资源
    最近更新 更多