首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何跟踪和趋势端到端的绩效(客户体验)

如何跟踪和趋势端到端的绩效(客户体验)
EN

Stack Overflow用户
提问于 2016-11-02 21:33:23
回答 2查看 663关注 0票数 2

我试图找出如何最好地跟踪&趋势之间的端到端性能。我的意思是,从客户端到端,通过浏览器访问这个应用程序的体验是什么?这包括下载时间、dom呈现、javascript呈现等等。

目前,我正在使用Jmeter运行负载测试,这很好地证明了应用程序和数据库容量。不幸的是,Jmeter绝不会允许我展示用户体验的全貌。因此,Jmeter不是浏览器,因此永远不会模拟javascript和dom呈现的影响。IE:如果第一个字节的时间是100 is,但是浏览器需要10秒才能下载资产并呈现dom,那么我们就有问题了。

我需要一个工具来帮助我。我最初的想法是利用Selenium。它可以运行一组测试(登录、查看、创建该测试),并以某种方式记录每个测试的时间。我们需要通过一组浏览器多次运行相同的场景。这将在每个版本发布之前完成,并允许我识别用户体验中的变化。

例如,这就是我想要生成的:

代码语言:javascript
复制
action      |  v1.5  |  v1.6   |  v1.7
----------------------------------------
login       |  2.3s  |  3.1s  |   1.2s
create user |  2.9s  |  2.7s  |   1.5s

selenium的问题在于: 1.我不确定它是否是为此而设计的。2.看来DOM就绪或javascript呈现非常难以检测。

这条路对吗?有人有指点吗?有没有我可以利用的工具呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-02 22:39:43

我认为你有很好的目标,但我会把它们分开:

  • 度量DOM呈现、javascript呈现等并不是“客户机通过浏览器访问此应用程序的体验”的一部分,因为您的客户端通常不知道您正在“呈现dom”或“运行javasript”--而且他们并不关心。但是,在每次提交的更改之后,我都想解决这些问题,而不仅仅是发布到发布,因为如果这种测试没有一直运行,就很难将退化追溯到特定的更改。因此,我会将它放在构建级别上的持续集成中。看一个很好的讨论这里
  • 然后,您可能想知道服务器端性能是否相同或恶化(或更好)。因此,JMeter是理想的。这样的测试可以按一定的时间表(例如夜间或每个版本)进行,并且可以使用JMeter插件为Jenkins实现自动化。如果服务器端的性能变得更差,您并不需要端到端的测试,因为您已经知道会发生什么了。
  • 但是,如果服务器运行良好,那么使用真正的浏览器进行的“最终用户体验”测试具有实际价值,因此Selenium实际上适合这样做,而且由于它可以与任何测试框架(junit、nunit等)集成,它也适合于自动处理,并可以生成一些报告,包括工期(例如,JUnit有一个TestWatcher,允许您向每个测试添加一致的持续时间度量)。
  • 在所有这些自动化之后,我还会做一个“真正的最终用户体验”测试,而JMeter性能测试在同一台服务器上同时运行:让一个真正的人在加载时体验该应用程序。因为人,不像自动化,是不可预测的,这是好的发现错误。
票数 3
EN

Stack Overflow用户

发布于 2016-11-03 05:19:02

  1. 关于"JMeter不是浏览器“。它实际上不是浏览器,但它的作用可能就像给定适当配置的浏览器,因此请确保:
代码语言:javascript
复制
- add [HTTP Cookie Manager](http://jmeter.apache.org/usermanual/component_reference.html#HTTP_Cookie_Manager) to your Test Plan to represent browser cookies and deal with cookie-based authentication
- add [HTTP Header Manager](http://jmeter.apache.org/usermanual/component_reference.html#HTTP_Header_Manager) to send the appropriate headers
- configure HTTP Request samplers via [HTTP Request Defaults](http://jmeter.apache.org/usermanual/component_reference.html#HTTP_Request_Defaults) to 
代码语言:javascript
复制
    - Retrieve all embedded resources
    - Use thread pool of around 5 concurrent threads to do it

代码语言:javascript
复制
- Add [HTTP Cache Manager](http://jmeter.apache.org/usermanual/component_reference.html#HTTP_Cache_Manager) to represent browser cache (i.e. embedded resources retrieved only once per virtual user per iteration) 
- if your application is build on AJAX - you need to mimic [AJAX requests with JMeter](https://www.blazemeter.com/blog/how-load-test-ajaxxhr-enabled-sites-jmeter) as well 

关于“呈现”,例如,您检测到您的应用程序在某个浏览器上呈现得很慢,通过对应用程序进行调优,您无法做任何事情。下一步是什么?您将开发一个补丁,还是向浏览器开发人员提出一个问题?我建议关注您可以控制的区域,而通过浏览器呈现DOM不是一件可以做到的事情。

  1. 如果出于任何原因仍然需要这些客户端度量,可以考虑使用WebDriver取样器和主JMeter负载测试,这样就可以将真正的浏览器度量添加到最终报告中。您甚至可以使用导航API收集确切的时间,并将它们添加到负载测试报告中。

请参阅用JMeter的WebDriver采样器使用硒以开始。

  1. 在构建(和JMeter测试执行)之间,有多个跟踪应用程序性能的选项,即
代码语言:javascript
复制
- [JChav](http://jchav.blogspot.com/) - JMeter Chart History And Visualisation - a standalone tool
- [Jenkins Performance Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Performance+Plugin) - a Continuous Integration solution

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

https://stackoverflow.com/questions/40390200

复制
相关文章

相似问题

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