如何解析sample1的响应以在JMeter中创建新样本

如何解析sample1的响应以在JMeter中创建新样本,jmeter,Jmeter,我使用JMeter对web服务器进行性能测试。我的测试用例如下: step1: send file update request to server. step2: server will return some files URL as html response step3: client need to create new request with the URL returned in step2,thus need to parse the response of step2.

我使用JMeter对web服务器进行性能测试。我的测试用例如下:

step1: send file update request to server.
step2: server will return some files URL as html response
step3: client need to create new request with the URL returned in step2,thus need to parse 
the response of step2.

我是JMeter新手,不知道如何实现它。我基本上了解了JMeter的前处理器和后处理器,但仍然不知道如何操作。

好的,让我们在第一步之前开始:

右键单击->添加->线程(用户)->线程组

  • 现在是实际的第一步(如果使用REST):
Add->Sampler->Http请求

在底部,您可以使用请求发送文件。您可以添加文件附件,如果这是您所要求的

  • 正在从服务器提取响应:
假设您的回答是:

<Response>
  <name>StackOverflow.com</name>
  <url>http://stackoverflow.com/questions/11186423/how-to-parse-response-of-sample1-to-create-new-sample-in-jmeter</url>
</Response>
这应该很简单<代码>添加后处理器->正则表达式提取器并放置以下内容:

Reference Name : url 
Regular Expression : (http[\S]+)
Template : $1$
Match No. (0 for Random): 1

现在您有了
url
变量,可以在测试中进一步使用
${url}
。如果对你有效,请告诉我。我使用虚拟采样器进行了测试,它对我很有效。

这就是我如何从url中提取一些值,并将其作为变量进一步传递,以便下一个请求将包含它

下面是一些关于在JMeter中进行测试的屏幕截图和更广泛的描述

添加
线程组
HTTP请求

当这个
HTTP请求带有一些数据的
响应时(在本例中为URL),您希望提取它,然后将其发送给我们

让我们走吧:

  • 转到您的第一个HTTP请求,然后您将收到带有变量的响应:

    添加->后处理器->正则表达式提取器

    在此窗口集中:

    要检查的响应字段:URL

    参考名称:
    MY-CUSTOM-VARIABLE-Name

    定义您喜欢的变量名称

    正则表达式:permanent.part.of.url.com/([a-zA-Z0-9]*)

    所以表达式([a-zA-Z0-9]*)负责获取所有 在开始时遇到永久url后出现字母和数字字符

    模板:1美元$

    在我们的例子中,只提取了一个表达式,需要读取它

    匹配号(0表示随机):1

    在这种情况下,只有一个匹配项,但如果出现更多匹配项,则可以 选择哪一个使用

  • 现在将提取的值放入下一个HTTP请求中 路径:some.other.url.com/
    ${MY-CUSTOM-VARIABLE-NAME}

    请记住,您使用此模式${}读取JMeter变量,因此 需要此值时,请使用
    ${MY-CUSTOM-VARIABLE-NAME}

  • 运行测试并使用
    MY-CUSTOM-VARIABLE-NAME
    使用regexp进行实验以获得所需的输出

    以下是关于这些东西的博客:

    而且总是有用的JMeter文档:

    @Grace您能将其粘贴到pastebin.com中吗?如果您自己提取,正确的url值是多少。这就是我们想要从提取器中得到的值,我现在无法看到@ant,下面是示例html响应:[link]。有一部分是“URL=;”,我只需要提取URL部分并发送第二个请求。谢谢~@ant,谢谢,它现在起作用了。还有一个问题需要您的帮助:我还需要提取“FILELIST”部分,并将其作为“token”参数组合到URL中,是否可以使用JMeter实现?另外,第二个请求需要从JavaServlet下载文件,JMeter是否可以这样做?@Grace请就此提出另一个问题。并将样本输入(您拥有的)和样本输出(您想要的)放在pastebin.com中
    Reference Name : url 
    Regular Expression : (http[\S]+)
    Template : $1$
    Match No. (0 for Random): 1