是否可以使用变量确定http请求方法(POST / GET)?

时间:2015-04-15 14:03:08

标签: variables jmeter

我使用csv文件作为我的请求的基础。问题是,我有一些GET请求和一些POST请求。有没有办法对两种请求类型使用相同的http请求元素,其中方法将由csv文件中的变量确定?

3 个答案:

答案 0 :(得分:5)

使用Beanshell预处理器非常简单。

为现有的HTTP请求添加Beanshell预处理器。让我们假设默认的HTTP方法是GET

现在,只要csv变量'method'为'POST'

,就可以将其更改为POST
if(vars.get("method").equalsIngoreCase("POST")){
     sampler.setMethod("POST");  //this will change current sampler's http method from GET to POST. 
}

答案 1 :(得分:0)

有两个选项:

  1. 通过HTTP Raw Request
  2. 使用JMeter Plugins
  3. 用Java编写自定义逻辑。请参阅How to Load Test AJAX/XHR Enabled Sites With JMeter的“如何编写自定义AJAX请求采样器”一章,了解如何完成此操作。

答案 2 :(得分:0)

最直接的解决方案是在测试计划中有两个请求,一个是GET,另一个是POST。这并不能完全满足您使用SAME请求元素的要求,但它可能是最好的解决方案。

将每个内容嵌套在自己的IF控制器中,从中读取CSV中的值。

例如,假设csv如下: http_method,主机,路径,则params ...

第一个IF可能是:

"${http_method}" == "GET"

然后是下一个:

"${http_method}" == "POST"

CSV中的每一行只会评估其中一个语句的真值,然后进行正确的POST或GET调用。