使用JMeter,我正在尝试测试我的应用程序性能。
这是我第一次挖掘JMeter。因此,如果缺少任何技术词,请告诉我。
所以转到我的查询,
我们的应用程序需要身份验证才能访问除登录和注册之外的任何请求。
我的测试计划如上所述。
A) Login Request (It should be call for every user first, then only (2) will perform)
1) based on credential in CSV file (Working)
2) Post processing using BeanShell Post processor (Working)
3) Store token and user id in variables for Next request (Working)
4) The token will be sent through Every HttpRequest Header (Working)
B) Random Controller
1) List of HttpRequest's
invoke HttpRequest randomly (Working)
2) For Dashboard Request, after the getting the response, sleep 3 seconds and continue the flow. (only this thread will wait)
现在我需要的是,
1)通常,当收到响应时,用户读取内容。对于一些反应很大,一些反应较少。因此,内容的阅读时间取决于内容大小。
我想在JMeter中实现同样的东西。收到仪表板响应后,等待3秒钟(我将为不同的Req指定不同的时间),然后调用下一个随机的HttpRequest。
我尝试使用Http Request - >恒定时器。但它在请求之前工作(反向:在调用请求之前,等待特定时间)。
那么我的测试计划设计有没有Timer帮助?
另外,我认为BeanShell Post处理器可能有所帮助。但没找到任何东西。
答案 0 :(得分:1)
我在这里看到两个选项:
使用控制器,测试操作和计时器,如here所述。 即将Transaction Controller设置为Dashboard Request的父级。在具有常量或变量暂停的同一控制器下添加测试操作以模拟延迟:
Random Controller
Transaction Controller
Dashboard Request
Test Action
Other HTTP Request
使用BeanShell或任何其他可编程后处理器以及相应语言的强大功能暂停。例如,使用BeanShell后处理器,您可以
Thread.sleep(3000); // pauses for 3 sec. after request
第二种解决方案似乎越来越短。但语义上首先表达了更好的意图。