我们是否可以通过jmeter模拟电子商务应用程序上的实时流量,而用户却步步下降

时间:2019-05-15 23:20:00

标签: jmeter

例如:假设我们的流程中有以下其余API步骤: 1.登录 2. Addtocart 3.增加项目数量 4.在购物车中使用优惠券 5.更新送货地址 6.下订单。

现在在上面的流程中,假设我想从300个并发用户开始,并且在每一步我都希望5-10%的用户下降,例如: 1.登录-300位用户可以 2. Addtocart-270位用户将 3.增加项目数量:243个用户 。 。 。 等等

1 个答案:

答案 0 :(得分:0)

创建多个线程组。例如:

Thread group 1- Login
   -Login Request
Thread group 2- Addtocart 
   -Addtocart Request
Thread group 3- item quantity
   -item quantity Request

现在,您可以手动设置每个线程组的线程数。手动将其设置为300,270和243,以及相应的加速时间。 您唯一需要注意的是将cookie从登录线程组传递到其他两个线程组。 为此,添加一个beanshell后处理器作为登录请求的子代,并添加以下代码

props.put("yourcookiename1","${COOKIE_yourcookiename1}");
props.put("yourcookiename2","${COOKIE_yourcookiename2}");
props.put("yourcookiename3","${COOKIE_yourcookiename3}");

现在添加一个Beanshell PostProcessor作为addtokart请求和增加质量请求的子代,并添加以下代码:

import org.apache.jmeter.protocol.http.control.CookieManager;
import org.apache.jmeter.protocol.http.control.Cookie;
CookieManager manager = sampler.getCookieManager();
Cookie cookie = new Cookie("yourcookiename1",props.get("yourcookiename1"),"abc.com","/",false,0);
manager.add(cookie);
Cookie cookie1 = new Cookie("yourcookiename2",props.get("yourcookiename2"),"abc.com","/",false,0);
manager.add(cookie1);
Cookie cookie2 = new Cookie("yourcookiename3",props.get("yourcookiename3"),"abc.com","/",false,0);
manager.add(cookie2);

这会将Cookie传递给处于不同线程组下的第二个和第三个请求。