使用dynatrace+showslow进行前端性能测试

article/2025/10/2 10:29:56

原文:http://blog.csdn.net/zhangren07/article/details/6883617

1.背景

应用的性能测试与优化目前主要停留在服务器端的反馈,而对于前端性能标准的研究与测试相对比较空白,缺乏统一的标准与工具。众所周知,浏览器html组件的下载及渲染性能直接影响最终的用户体验,目前应用的前端性能有许多优化空间,因此对前端性能进行测试与监控,有利于提升客户体验,做到全方位的性能监控,实现“客户第一”的价值。

2.前端性能标

目前较为流行且免费的前端性能评测标准及工具,是以yahoo的yslow及google的pagespeed为主。yslow和page speed是两款firefox浏览器下功能类似的插件,其主要功能是在用户访问网页时,可用此插件对当前访问的网页按若干条固定的评分标准进行前端性能评分。另有dynatrace也提供与yslow和page speed类似的评价标准。

2.1 yslow

评分标准:主要有35条评分标准,具体标准参见官方文档http://developer.yahoo.com/performance/rules.html。

插件下载:http://developer.yahoo.com/yslow/

插件运行:插件运行后,在firefox中访问网页,插件将会显示对该网页的评分,15个标准(使用到的评分标准数在不同版本的yslow插件中有所不同)从A-F进行打分。下图是对阿里巴巴中文网站首页的一个打分情况:


2.2 page speed

评分标准:pagespeed主要的评标准有29条http://code.google.com/speed/page-speed/docs/rules_intro.html

插件下载:http://code.google.com/speed/page-speed/download.html

插件运行:pagespeed除了支持firefox外,还支持google chrome浏览器,下图是在firefox中用page speed评估http://www.1688.com的结果


2.3 dynatrace ajax edition

评分标准:评分标准分为四个大类,包括Cache、网络、Server端、JavaScript代码,每个大类都有A~F六个等级,各个大类下面的最佳实践细则与yslow及page speed类似http://community.dynatrace.com/ext/ajax/PUB/Best+Practices+on+Web+Site+Performance+Optimization。

下载安装:https://www.dynatrace.com

运行情况:dynatrace可以支持firefox和ie,且其可支持到函数级的度量分析,在windows下运行dynatrace如下图所示


3.方案选择

3.1dynaTrace Ajax Edition

dynaTrace Ajax Edition是一款免费的前端性能评测工具,与非常优秀的yslow及page speed相比,其仍有几个不容忽视的优点:

1)         支持IE浏览器,这个优点直接秒杀另外两个工具

2)         支持JS函数级的性能分析

3)         对每条细则的建议更加详细具体

3.2showslow

showslow是yslow的数据收集与展示平台http://www.showslow.com/,它是一个开源的php项目,可以用来与firefox的yslow插件、page speed插件或者dynatrace通信,收集插件或程序所发送过来的信息并集中展示。只需要在dynatrace安装目录下进行一些设置,即可自动实现上传结果到showslow平台作为存档、分析及监控。

4.环境搭建与工具使用

4.1dynatraceAjax Edition

4.1.1 安装运行

从dynatrace官网http://ajax.dynatrace.com下载安装最新版本的dynatraceAjax Edition即可。dynatrace的启动可直接从菜单栏中进行运行,也可在IE插件栏中点击按钮运行。

 

4.1.2上传结果至showslow

对相应的链接右击,就可将相应结果上传到showslow


4.1.3 showslow中查看结果

showslow中看到的结果页面如下图所示:


4.2showslow环境搭建

1. 如是Linux平台,需要预先安装如下软件:libmcrypt-2.5.8,ncurses-5.7.tar.gz,zlib-1.2.3(要用64位方式编译http://blog.sina.com.cn/s/blog_5f66526e0100gkzu.html)。

2.安装mysql,要求mysql5以上版本。

3.安装Apache,最好安装2.0以上版本。

4.安装php,要求php5.2以上版本。

在Linux平台上搭建apache+php+mysql的文档网上有很多,大家可参阅,我在安装过程中遇到的问题,在文档最后有一个环境问题总结,可能会对大家有帮助。搭建完成基本的mysql+apache+php之后,再用如下的步骤可搭建showslow环境http://www.showslow.org/Installation_and_configuration:

第一步,下载showslow

下载showslow:https://github.com/sergeychernyshev/showslow/downloads

第二步,解压

解压showslow至某一文件夹,如:/www/showslow

第三步,设置apache

将showslow文件设置为apache的DocumentRoot,修改或添加httpd.conf文件内容如下:

<VirtualHost *:80>

       DocumentRoot/www/showslow #目录主路径,必须有这个目录才写      

       DirectoryIndexindex.htm index.html index.jsp index.php default.html defautl.htm default.jsp      

       ErrorLoglogs/market-error_log

       CustomLoglogs/market-access_log common

</VirtualHost>

第四步,新建数据库

在mysql中新建一个数据库showslow,授所有权限给showslowuser用户:

mysql> createdatabase showslow;

mysql> grant all onshowslow.* to showslowuser identified by 'showslow';

并在showslow文件夹下的config.sample.php文件中进行如下所示的数据库参数的修改,修改完成后另存为config.php:

$db = 'showslow';

$user = 'showslowuser';

$pass = 'showslow';

$host = '10.20.155.4';

第五步,更新数据库

绑定showslow到我们台式机的hosts文件里,方便访问(也可以直接ip访问):

10.20.155.4 www.myshowslow.com

启动Apache,可在http://www.myshowslow.com看到showslow平台,报错是因数据库未更新,访问http://www.myshowslow.com/dbupgrade.php和http://www.myshowslow.com/users/dbupgrade.php将数据库中的表更新至与当前版本showslow一致。

第六步,设置dynatrace

dynatrace安装文件下的dtajax.ini文件增加如下三行,其中第三行可设置dynatrace自动上传结果至showslow:

-Dcom.dynatrace.diagnostics.ajax.beacon.uploadurl=http:// 10.20.155.4:8070/beacon/dynatrace

-Dcom.dynatrace.diagnostics.ajax.beacon.portalurl=http:// 10.20.155.4:8070/

-Dcom.dynatrace.diagnostics.ajax.beacon.autoupload=true

第七步,大功造成,上传并显示结果

按4.1节中的上传结果至showslow.com即可将前端性能分析结果上传至shlowslow。


4.3 dynatrace+showslow与UI自动化结合

只需要在ruby语言所写的自动化脚本中加入如下两行,即可在运行UI自动化脚本时,把UI自动化所访问到的页面的前端性能数据,通过所安装的dynatrace自动上传至showslow平台。

ENV['DT_IE_AGENT_ACTIVE'] = 'true'

ENV['DT_IE_SESSION_NAME'] = 'Watir Sample Test'

一个完整的示例代码也只需要8行:

require 'pwatir'

ENV['DT_IE_AGENT_ACTIVE'] = 'true'

ENV['DT_IE_SESSION_NAME'] = 'Watir Sample Test'

b = Watir::IE.new

b.goto('http://www.baidu.com')

b.text_field(:id, 'kw').set 'watir'

b.button(:id, "su").click

b.close()

4.4 Linux中安装mysql+apache+php问题小结

4.4.1Can't connect to local MySQL server through socket‘xxx’

安装mysql后,运行mysql命令会出现ERROR 2002(HY000): Can't connect to local MySQL server through socket ‘xxx’错误,通常是由于安装完成mysql之后未启动造成的,执行/etc/init.d/mysqlstart即可。

mysql安装好之后,默认的root密码是空,mysql –uroot –p后在密码输入行直接回国即可命令模式以root进入mysql。

4.4.2 安装php时configure及make时报错的问题

从源码安装php时,要运行如下的编译项:

./configure --prefix=/usr/local/php5--with-charset=utf8 --with-extra-charsets=gbk,gb2312,utf8 --with-apxs2=/usr/local/httpd/bin/apxs--with-config-file-path=/usr/local/lib/php --with-mysql=/data/mysql--enable-mbstring --with-mysqli=/data/mysql/bin/mysql_config--with-mcrypt=/usr/local/libmcrypt

因此需要安装apache,mysql,mcrypt等软件之后,才能安装php。

4.4.3 php安装过程中httpd.conf相关的配置修改

在从源码安装php过程中,运行make命令后将php源代码目录modules下的libphp5.so拷贝至httpd/modules下,并在httpd.conf中加载这个module并添加两种文件类型:

LoadModule php5_module modules/libphp5.so

AddType application/x-httpd-php .php

AddType application/x-httpd-php .html

安装完成php后,需要将php源代码目录下的php.ini-dist拷贝至--with-config-file-path指定的/usr/local/lib/php目录下并改名为php.ini,同时在httpd.conf文件中指定php.ini文件位置:

PHPIniDir "/usr/local/lib/php"


http://chatgpt.dhexx.cn/article/k9gYB3OF.shtml

相关文章

什么是 Dynatrace 里的 User Action

用户操作是与最终用户界面的交互&#xff0c;涉及对 Web 服务器的调用&#xff0c;这可能有多个嵌套调用。 它是由用户输入&#xff08;例如页面加载、单击或触摸&#xff09;触发的从一个视图到另一个视图的转换。 Web 应用的 User Action 类型&#xff1a; Load actionsXHR …

Ultra Fast Deep Lane Detection with HybridAnchor Driven Ordinal Classification

Abstract 我们将车道检测过程视为一个使用全局特征的锚定驱动的有序分类问题。 首先&#xff0c;我们在一系列混合&#xff08;行和列&#xff09;锚点上用稀疏坐标表示车道。在锚驱动表示的帮助下&#xff0c;我们将车道检测任务重新表述为一个有序分类问题&#xff0c;以得到…

Dynatrace系列之-排除干扰请求

排除干扰请求 Dyatrace监控了所有服务端的请求。当特定请求的性能或者失败率高的时候&#xff0c;Dynatrace将触发告警。然尔不是所有的高并发的请求都是重要的请求&#xff0c;有些慢请求也不需要告警。比如心跳请求。这些不重要的请求可能会干扰整个服务(service)的响应时间…

Web Performance工具 – Dynatrace AJAX Edition

Dynatrace AJAX Edition是我认为最为强大的Web Performance Profile工具。废话不说了,直接上图介绍其主要功能。 先用IE访问你需要profile的网站,例如google,可以点击dynatrace工具栏来启动。这时候dynatrace就开始记录这个网站触发的一切事件。 我简单测试一下,点击googl…

DynamicArray

文章目录 1 DynamicArray设计要点2 继承关系图和接口实现3 代码实现4 代码优化 1 DynamicArray设计要点 类模板 动态确定内部数组空间的大小实现函数返回数组长度构造拷贝和赋值操作 2 继承关系图和接口实现 继承关系图 接口实现 template < typename T > class D…

云途加油站 | 一文读懂 Dynatrace 与 Amazon Lambda 的“双剑合璧心法”

Amazon Lambda 正在掀起企业级云市场的一场小潮流。不少业内人士发现&#xff0c;越来越多的企业正在将 Lambda 函数加入其技术栈中。 这一潮流其实不难理解—— 一则&#xff0c;门槛低。Amazon Lambda为企业进入云计算提供了相对较低的门槛&#xff0c;无需立即全面推行转移…

Dynatrace AppMon最佳实践(一)

经常有客户问我,如何利用Dynatrace捕获必要的应用性能监控信息,从而快速诊断性能问题?所谓捕获必要的信息,即是在应用出现性能下降的时候,PurePath能够捕获导致事务响应缓慢的方法,或是导致事务失败的异常栈信息,亦或是用户请求的上下文参数。如何通过Dynatrace捕获必要…

什么是 Dynatrace 的 Speed Index 度量标准

Dynatrace 中的 Speed Index 是一种度量网页加载速度的标准&#xff0c;它与 Visually Complete 类似&#xff0c;但更加精细。Speed Index 是一个计算值&#xff0c;反映了整个页面的加载速度&#xff0c;并将所有重要元素的渲染时间考虑在内。与 Visually Complete 不同的是&…

dynamic-datasource动态数据源学习

学习链接 spring整合mybatis的核心思路 & 数据源动态切换 & 多数据源事务控制 - 自己的链接&#xff08;本篇文章的上篇&#xff09; Mybatisplus生成代码配置 & p6spy打印sql & mybatis日志打印 & mybatisplus用法 dynamic-datasource-spring-boot-sta…

什么是 Dynatrace 的 Largest Contentful Paint

Dynatrace 多维分析使 Web 开发人员能够沿多个过滤维度分析浏览器监控执行情况。 多维分析页面以图表形式显示选定时间范围内的性能、可用性和错误计数。 可以选择较短的分析范围并以散点图和列表格式查看单个数据点。 页面顶部显示长期&#xff08;时间序列&#xff09;数据…

使用 Dynatrace 对 Node.js 应用的性能数据进行分析

JavaScript Storefront 应用程序的性能问题的表现形式有多种&#xff0c;最典型的是响应时间(response time)的恶化&#xff0c;甚至由于资源耗尽导致的网站完全宕机。 由于 JavaScript Storefront 涉及许多组件&#xff0c;因此确定性能问题的根源可能具有挑战性&#xff0c;如…

dynatrace 详解

dynaTrace Ajax&#xff1a;前端性能分析利器 谢 菊, 性能分析工程师, IBM 谢菊&#xff0c;IBM 中国软件开发中心&#xff08;CDL&#xff09;Lotus 部门的软件性能分析工程师&#xff0c;具有多个产品的性能测试经验&#xff0c;如IBM Portal Accelerator 和IBM Docs。目前正…

dynaTrace Ajax:前端性能分析利器

什么是 dynaTrace Ajax 随着 jQuery、Dojo、YUI 等框架的兴起让构建 Web2.0 应用更加容易&#xff0c;但随之带来的定位等应用问题也越来越难&#xff0c;尤其是与性能相关的。dynaTrace Ajax Edition 是一个强大的底层追踪、前端性能分析工具&#xff0c;该工具不仅能够记录浏…

监控方法基本套路

监控方法基本套路 性能测试监控方法基本套路 1、传统OS定位方法&#xff1a; 通过CPU&#xff0c;内存&#xff0c;IO&#xff0c;网络等指标初步确定问题根据问题进一步确定进程的PID根据进程PID&#xff0c;确定到线程基本TID根据线程的Dump确定堆栈信息根据堆栈信息定位到…

Dynatrace系列之- 如何发现和分析问题

Dynatrace系列之- 如何发现和分析问题 Dynatrace用Problem(问题)表示异常情况&#xff0c;即偏离了正常行为或状态。例如某个服务速度变慢或某个用户登录应用速度变慢。每当检测到问题时&#xff0c;Dynatrace都会引发一个特定的problem event(问题事件)来表示此类异常。 请注…

网址和URL之间的区别:什么是RUI、RUL、URN

调用Web地址是普通的一个问题。一般这种情况&#xff0c;大家都会说&#xff0c;将“URL”放到浏览器中。这里提到的URL &#xff0c;其实不是一个URL &#xff0c;是网址的意思。URI 是统一资源标识符&#xff0c;而 URL 是统一资源定位符。因此&#xff0c;笼统地说&#xff…

146. LRU 缓存机制

LRU 缓存机制 运用你所掌握的数据结构&#xff0c;设计和实现一个 LRU (最近最少使用) 缓存机制 。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中&#xff0c;则返回关键字…

物理读之LRU(最近最少被使用)的深入解析 (解释LRU_FLAG的含义)

物理读之LRU&#xff08;最近最少被使用&#xff09;的深入解析 转载请注明出处&#xff1a; http://blog.csdn.net/guoyjoe/article/details/38264883 一组LRU链表包括LRU主链&#xff0c;LRU辅助链&#xff0c;LRUW主链&#xff0c;LRUW辅助链&#xff0c;称为一个WorkSet(…

LRU(最近最少使用)缓存机制

title: LRU缓存机制 categories: 操作系统 tags: 操作系统LRUOS计算机知识 LRU(最近最少使用)缓存机制 LRU&#xff1a;最近最少使用缓存机制 其设计的原则依据&#xff1a;如果一个数据在最近一段时间没有被访问到&#xff0c;那么在将来它被访问的可能性也很小。也就是…

LRU简单实现-了解一下?

LRU 算法 LRU 是一种作为缓存的算法&#xff0c;像 CPU 缓存&#xff0c;数据库缓存&#xff0c;浏览器缓存。以及在移动端开发时的图片安缓存&#xff0c;采用 LRU 缓存策略的应用很广泛。在面试中也是常常考察的一个点。当然也有其他缓存方法&#xff0c;常见的策略有三种&a…