不同的HTTP请求在同一个线程中需要不同的认证头

时间:2018-05-15 23:38:28

标签: python jmeter

我用Jmeter编写了一个测试计划来描绘一个E2E场景的旅程。我花了一段时间来编写它,因为用Jmeter进行调试真的不那么容易。

Q1)我可以用python编写相同的旅程。我可以选择用这两种方法创建这些迷你E2E并运行它们。你怎么想,我应该使用Jmeter还是Python?什么是利弊。请注意,这些迷你E2E最终也将用于性能测试。

Q2)我注意到的一件事是,在Jmeter中我必须有2个线程,因为每个线程使用它自己的头管理器(主要是因为不同的线程使用不同组的不同API,它们使用不同的身份验证方法)

我也想使用相同的测试计划进行性能测试。由于我有多个线程(顺便说一句,我标记了"连续运行线程组")线程冲突会出现问题,我该如何保证呢?如何判断同一线程上的不同API使用不同的身份验证?

2 个答案:

答案 0 :(得分:0)

Python是一种编程语言,而不是测试框架,因此可能是JMeter或用python编写的测试工具。

在Sampler / API中使用不同的 Header Manager - 只需将经理置于下的采样器

  

Header Manager允许您添加或覆盖HTTP请求标头。

对于一组samplera,您可以将每个Header Manager和采样器放在不同的控制器下,这样每个控制器都会在其范围下填充不同的标题

  

JMeter现在支持多个Header Manager。合并标头条目以形成采样器的列表。如果要合并的条目与现有标头名称匹配,则它将替换先前的条目,除非条目值为空,在这种情况下,将删除任何现有条目。这允许您设置一组默认标题,并对特定采样器应用调整。

答案 1 :(得分:0)

JMeter线程完全独立并且彼此之间一无所知。因此,您可以使用任何合适的方式(functionsCSV Data Set Config,无论如何)参数化HTTP标头管理器,以便每个用户都拥有自己的身份验证标头。您可以使用View Results Tree侦听器

对此进行验证

JMeter Header Manager Debugging

如果您认为Python脚本更易于实现/调试,您可以查看Locust框架,您将能够在Python中创建/调试负载测试并在Web界面中查看负载测试流程。有关使用Locust实施方案的更多信息,请参阅How to Run Locust with Different Users文章。