压力测试angularJS应用(Jmeter)

时间:2018-01-30 08:19:41

标签: angularjs multithreading selenium-webdriver jmeter stress-testing

我有Jmeter和webdriver插件(chrome,firefox,phantomJS,......)

  1. 问题是当我启动具有多线程的场景时,所有无头(Chrome,PhantomJS)打开第一个线程并登录但所有其他线程都没有登录,这是我们已连接的原因应用程序(目标有几个用户同时在应用程序上),我不知道如何隔离像firefox这样的会话(firefox的问题不是无头,只有45版本有效)

  2. 我尝试通过代理测试录制控制器并在工作台上测试录制但是当我尝试重新启动测试时,请求不顺利(asynchrone)有一个解释告诉"使用事务控制器& #34;那么好但是怎么样?我不想继续使用blazemater网站我想让它在本地工作,任何人都可以使它工作吗?没人压力测试angularJS应用?

  3. 我更喜欢第二个解决方案通过jmeter调用浏览器并通过http请求测试ajax但我不知道它是如何工作的

    任何想法?

2 个答案:

答案 0 :(得分:0)

取决于您需要多少用户:

  1. 您可以参数化您的测试,以便不同的JMeter线程(虚拟用户)使用不同的凭据通过CSV Data Set Config从不同的浏览器登录到应用程序。所有由WebDriver采样器启动的浏览器都应该彼此隔离,并且如果您使用不同的凭据,那么您应该很好。但根据WebDriver Sampler 10 Minute Guide

    ,它只能用于多个用户
      

    但是,对于Web驱动程序用例,读者应该谨慎处理它们将创建的线程数,因为每个线程都有一个与之关联的浏览器实例。 每个浏览器消耗大量资源,并且应该限制读者应该创建的浏览器数量。

  2. 如果你采用HTTP Requests方式,模拟AJAX调用的最简单选项就是将它们放在Parallel Controller之下,这样你的测试就会如下:

    • 交易控制器
      • 主要要求
      • 并行控制器
        • AJAX请求1
        • AJAX request 2

答案 1 :(得分:0)

奇怪的是,我做了一个简单的配置并且它有效,我的angularJS应用程序嵌入在战争中,但我不知道它是否有所不同,结构是这样的:

  • 计划
    • 线程组
      • HTTP Cookie管理器
      • HTTP标头管理器
      • HTTP请求默认值
      • 录制控制器

我录制了场景并简单地播放它(我假设登录的顺序正确)它是html页面我没有看到JS,因为应用程序在应用程序服务器中