performance - 如何使用 jmeter 对完整的逻辑流程进行负载测试?
问题描述
我有三个 API:
- 创建用户(在响应正文中返回 userId)
- 添加与步骤 1 中创建的用户对应的照片(在请求正文中获取 userId - 与在第一个正文的响应中获得的相同)
- 轮询 API 以检查用户照片更新是否完成(在请求正文中获取 userId - 与在第一个正文的响应中获得的相同)
这三个 API 的运行构成了应用程序的一个逻辑流程。我想运行和基准测试这三个 API 的“集合”。在这方面,我有以下担忧:
我应该如何决定是使用三个不同的线程组来运行这 3 个 API 还是一个线程组就足够了?
应该使用什么来从第一个 API 响应中提取“用户 ID”并将其用作第二个请求的输入。
如何在第三个 API 中根据需要实现轮询机制?
如果我说 5 个用户点击 request1,然后同样 5 个用户点击 request 2,我如何建立请求之间的映射,以便第一个 API 的 user1 映射到第二个 API?
解决方案
How should I decide whether to have three different thread groups to run these 3 APIs or a single thread group should suffice ?
- 我会选择单个线程组,因为它假设单个虚拟用户(或一组虚拟用户)的操作What should be used to extract 'userID' from first API response and use it as an input to second request.
- 取决于响应类型,用于 JSON 的JSON 提取器,用于 XML的XPath 提取器How can I implement polling mechanism as needed in third API ?
- 使用While 控制器If I have say 5 users hitting request1 and then the same 5 users hitting request 2, how can I establish mapping between requests so that user1 by first API gets mapped to second API ?
- 你不需要做任何事情,每个 JMeter 线程(虚拟用户)颠倒执行采样器,所有上下文(如变量)对于这个用户(线程)来说都是本地的
推荐阅读
- c++ - 由于内存地址问题打印不同的结果?简单的 C++ 问题
- android-animation - 如何在一个地方为所有过渡定义动画?
- outlook - 将 Sprint 容量与 Outlook 日历联系起来
- kendo-grid - 如何在剑道中创建嵌套网格?
- python - 如何使搜索栏在 django 中工作?
- python - ValueError:比较熊猫中系列和数据框之间的标签(相同标记的错误)
- php - 如何实现从嵌套 DVI 到包含类到样式的表格的代码转换?
- c++ - 有人可以向我解释每段代码吗,我不明白,emplace_hint() 函数如何工作并加快插入过程
- oracle - 我在 oracle 12c 的 blob 列中调整图像大小有问题
- javascript - 如何使用javascript多次更改跨度内容