我的应用程序中有User Registration、Flight Search、Book Tickets模块。我已经创建了我的JMeter测试&对于测试中的每个模块,我有不同的线程组。我证实了&它运行得很好。
发行:
我的经理说,我们需要运行所有模块(所有线程组)和适当的用户,因为这就是它在生产中的方式。即使我可以将它们全部运行在一起--如果出现问题--我也不知道应用程序的哪个特性导致了问题。
我的目标是分别运行每个模块&查找其性能。我认为,按模块进行操作将是获得响应时间、资源利用率等的正确方法。
澄清:
故意将loadrunner标记为这个问题并不是JMeter特有的&它是通用的。
发布于 2015-04-23 13:15:35
如果您的目标是表示用于评估部署风险的人工行为,那么对每个业务流程进行原子测试将无法实现您的目标。
您似乎正在参与一个更恰当的称为性能单元测试的过程。这在开发人员(与性能测试人员不同)中非常常见,他们试图在一定数量的用户中对单个业务流程的性能进行限定。这些也通常被分类为非正常思考时间(通常完全消除),小数据集,小于有用的测试环境和极短的测试持续时间,如5-15分钟。
发布于 2015-04-30 19:04:22
您可以将此业务场景标记为事务--这意味着每个模块的HTTP请求将分组为一个组或事务中的前登录请求,搜索航班作为一个组或事务,以及类似于预订票等。通过这样做,您将以集成的方式测试它,并且它也将是一个类似于生产的场景。运行后,由于分组,您可以很容易地找出哪一组请求花费更多的时间,或者搜索,订票等。通过这种方式,您将获得准确的性能统计信息,并且您也将实现类似于场景的生产。
发布于 2015-04-23 06:32:43
这种方法实际上取决于测试练习的目标是什么。如果您希望优化或分析某个特定模块,那么隔离地测试它是有意义的。
然而,如果您试图检查您的服务器规模,或者您是否有足够的容量,您应该同时测试您的所有模块,在或高于您预期的负载级别。
与您的孤立方法相反的例子:
假设您必须使用模块A和B,它们都是CPU密集型的,在运行它们时占用了80%的CPU。你第一次测试了A,它使用了80%的CPU,你有20%的空闲时间,它运行得很好。现在你只测试B,同样的结果。
现在您进入生产阶段,用户尝试同时使用A和B模块,两者都试图使用80%的CPU,突然之间您没有足够的CPU,您的性能受到了影响。
https://stackoverflow.com/questions/29814324
复制相似问题