首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用JMeter进行身份验证和负载测试

使用JMeter进行身份验证和负载测试
EN

Stack Exchange QA用户
提问于 2017-12-12 15:02:36
回答 2查看 2.3K关注 0票数 5

希望获得关于如何使用JMeter进行负载测试的建议。我的问题更多的是关于最佳实践,因为我对这个工具完全陌生。

我可以使用采样器,查看结果和线程组组件,能够发送请求和断言,获取令牌,创建变量等.但是,我不知道如何同时为100个用户处理以下场景:

  • 发送登录请求
  • 使用返回的令牌进行通话以调用API端点
  • 注销

只有在同时为多个用户运行测试时才会出现问题,而不是只运行我的线程。

当并发执行时,第一个线程组实例总是通过auth步骤并运行几个请求,但一旦触发其他实例,事情就会出错(例如,当令牌已经存在时,实例请求令牌(而不是刷新),或者在注销时试图到达端点.)

如何组织API测试?

如果我计划同时测试1000个访问API的用户,我是否真的需要提供1000个帐户来验证他们,或者有什么提示需要遵循?

对于同样的应用程序,我已经使用js/ jasmine / protractor开发了自动测试。我是否有可能在Jmeter中重用我的场景?任何可能有助于将现有js测试集成到js中的库或插件?

另外,使用记录器记录我与应用程序的交互是否是接近负载测试SPA应用程序的最佳方法?

编辑:我不需要使用JMeter,只是尝试一下,因为它被QA专业人员广泛使用,我对如何加载和压力测试REST / AngularJS应用程序的工具和想法持开放态度。我尝试过Locust.io这个负载测试框架,我非常喜欢它,但是我再次尝试坚持使用基于Java和JS的工具,因为这些是我们用来构建和测试这个应用程序的唯一技术,而且我的团队中的一些人既不习惯也不感兴趣。

EN

回答 2

Stack Exchange QA用户

发布于 2017-12-12 15:43:44

你确定你已经对你的代币进行了适当的参数化吗?使用调试采样器,您可以查看请求并确认每个新的“登录”都更新了令牌。

关于登录的数量,这取决于您的API。API是否将同一用户视为同一会话的一部分?当您第二次与同一个用户登录时,您会得到一个新的令牌还是缓存的令牌?

如果你得到一个缓存的令牌,那么是的-你将需要1000个登录。(对不起!这通常是负载/性能测试-数据设置的一个巨大障碍。

我从未使用过量角器,但我怀疑您可以重用JMeter中的任何东西。如果您打开.jmx文件,您将看到它只是一个构造对JMeter库方法的调用的XML文件。您必须深入到这些库中,才能获得在JMeter运行时发生的实际脚本操作。

使用SPA时,您必须特别注意正在发出的web服务请求。我遇到过几次这样的情况:仅仅发出更新请求并不能忠实地模拟用户体验。

当用户进入一个页面并获得一个项目列表时,先前的操作是某种"get“。您可能确切地知道要“更新”什么,但是跳过所有这些"get“操作会给您带来潜在的误报。录音应该捕捉所有的流量--但不要假设。发布更新后,SPA是否刷新表或页的内容?

您可能需要手动创建"update“请求,以强制web服务/服务器响应模拟,就像您是真正的用户一样。我的意思是,如果你想要衡量你的表现,不要把你的录音降到最低。如果您纯粹希望生成负载,这有时是可以的,但请确保您在最后报告中记录了这一点。人们经常交换术语性能测试和负载测试。它们不是一回事。

最后,录制不会创建任何参数化,您很可能需要在某个地方编写至少一个BeanShell PreProcessor。通常,这种情况发生在需要更新的日期值,而不是记录流量时捕获的值。

票数 2
EN

Stack Exchange QA用户

发布于 2017-12-14 10:52:14

负载测试的主要思想是尽可能接近真实用户。如果您需要测试某种形式的web -您需要模拟实际的API使用。因此,当涉及到负载测试时,每个JMeter线程(虚拟用户)必须代表一个真正的用户,因此您需要为每个虚拟用户使用不同的凭据。

关于重用基于JavaScript的测试,我的期望是它们是非常资源密集型的,所以很难用它们创建主负载。常见的做法是使用JMeter的HTTP请求采样器创建主负载,并并行运行UI测试,使用一个单独的带有1个(或多个)线程的螺纹组来测试客户端性能。

您可以使用JMeter的OS进程采样器启动任何外部程序,也可以查看网络驱动程序取样器插件,它提供了与Selenium的JMeter集成,您可以用各种受支持的语言编写代码,JavaScript是默认的。

票数 2
EN
页面原文内容由Stack Exchange QA提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://sqa.stackexchange.com/questions/30979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档