Firebug网络监视详解

Firebug是一个非常强大的Firefox附加组件,可以查看、编辑HTML,CSS,JavaScript,Cookies,是开发者必不可少的工具,现在Firebug的发行版本是1.3.3。

Firebug中有一个叫“网络”的面板,在这里我们可以看到各个元素的详细信息。

从左往右分别是

  • 请求部分
  • http状态码
  • 域名
  • 文件大小
  • timeline

请求部分

firebug_headers

这个地方是可以展开的,里面包括了请求的地址,请求的方法(是GET还是POST),请求的参数,Headers等等。

http状态码

如果是成功,就是200,404就是请求资源部存在,具体可以看这里

域名

查看该资源所属的域名,其实在请求部分中已经有这个信息了,不过在这里列出来会方便查找某些域名下在资源

文件大小

没什么可解释的

timeline

这里是重点。在Firebug 1.3.3中,timeline如下图所示:
Continue reading “Firebug网络监视详解”

用VSPerfMon在测试ASP.NET程序的过程中收集代码覆盖率信息

前两篇文章介绍了VSTS性能分析工具Profiler如何用Profiler发现性能问题并且进行优化。今天想分享一下如何在测试ASP.NET程序的过程中获取代码覆盖率的信息。

设想如下场景,测试人员介入到项目的需求,分析,设计的阶段,得到了很多有用的文档和信息。接下来就到了编码的阶段,在这个时候测试工程师开始根据前面获得的信息来设计测试用例,做用例评审,力求测试用例覆盖能覆盖系统的每一个角落。不幸的是,系统实在是太大,没有人能确切地知道手上的测试用例对系统的覆盖(这里指定为代码的行覆盖)能达到什么样的程度。对于系统的关键部分,没有人希望在经过几轮测试以后,还有相当部分的代码是没有被执行过的。

解决这个问题的其中一个方法,就是对关键部分的代码进行代码覆盖率的统计。平时我做单元测试和接口测试的时候,得益于IDE的帮助,代码覆盖率信息很容易就能得到,但是对于部署在IIS上的ASP.NET代码,又如何去收集代码覆盖率信息呢?曾经找过好多.NET的代码覆盖率工具,没有合适的。不过就在最近,让我发现了VSPerfMon,VSTS自带的性能数据收集工具。真是众里寻他千百度,蓦然回首,那工具却在灯火阑珊处。

1. 首先要对需要进行代码覆盖率信息收集的二进制文件(DLL, EXE)用VSInstr进行处理,记得带上/COVERAGE参数

VSInstr “D:\Websites\somewhere\bin\MySpace.Web.UserHome.dll” /COVERAGE

2. 停掉IIS

iisreset /stop

3. 用VSPerfClrEnv 设置相关的环境变量

VSPerfClrEnv /globaltraceon

4. 启动VSPerfMon;参数/COVERAGE代表本次监控收集的数据是代码覆盖率;/user:”NETWORK SERVICE”,指定用户名;/CS 启用跨域会话分析;/output:”d:\magus\0422.coverage”,指定输出文件的名字和路径,记得用.coverage作为扩展名。
Continue reading “用VSPerfMon在测试ASP.NET程序的过程中收集代码覆盖率信息”

用VSTS Profiler发现性能问题并且进行优化实例

上一篇文章介绍了如何使用VSTS的Profiler,今天想分享一下对于一个ASP.NET应用程序,用Profiler找到性能问题并且对之进行优化。

由于ASP.NET程序运行在一个硕大的框架上,所以一般用Sample模式收集到的数据,对发现性能问题帮助不大,以下是一个用Sample模式收集的结果:

iis-sample

从这个报告中我们可以看到,前5个工作量最大的函数和执行单独工作最多的函数都是系统函数。

下面看一下有针对性地用检测模式收集的数据:

instr-function-with-indi-work1

本文就采用“检测”模式收集性能数据来进行分析和处理。

首先,把本次测试的目标DLL用VSInstr工具进行处理,使得Profiler能够收集相关的性能数据,这一个步骤非常关键,通常来说不需要设置额外的参数,就是默认的方式就可以了,例如:VSInstr “D:\Websites\xxxx\bin\xxxx.dll”,在处理的过程中可能会提示一些错误,具体错误的信息可以在这里查找。把相应的DLL处理完毕以后,就在命令行输入以下指令(命令行的指令用斜体加下划线表示;说明文字加黑)
Continue reading “用VSTS Profiler发现性能问题并且进行优化实例”

VSTS性能分析工具Profiler的介绍

MSDN文档中,对于VSTS中的Development Edition的介绍主要分两大块,第一是“编写高质量的代码”,第二就是“使用分析工具对应用程序性能进行分析”。在VSTS里面有一个工具,叫Profiler,这个工具可以帮助研发人员在程序运行的过程中收集相关的数据,并且对之进行分析,从而达到帮助实现性能调优的目的。本文讲述如何在使用命令行工具来对ASP.NET程序进行性能测试相关数据的收集。

在VSTS的Profiler中,有两种(VSTS2010好像有5种了)Profiling的方法,第一种是采样(Sampling),第二种是检测(Instrumentation)。对于采样模式,它的工作原理是Profiler定期中断CPU并且收集函数的调用堆栈信息。在网上找到一个图,对于采样工作方式的描述非常清晰:

how-sampling-works

对于检测模式,他的工作原理是用VSInstr程序在原始的代码中插入一些用于计算时间的代码,例如A函数调用B函数,那么在调用B函数的前后都会被插入用于计算时间的代码,具体可以看下图:
Continue reading “VSTS性能分析工具Profiler的介绍”

用.htaccess文件实现WordPress图片防盗链

最近查看博客的LOG,发现有图片盗链的情况,而且文章也是原文照抄。不过没什么,有人抄,证明文章是有价值的;况且互联网上你COPY我,我COPY你,都是很常见的。不过问题在于我在虚机主机真的很虚,对流量有严格的限制,有图片盗链的话流量立刻就上去了,为了防止流量超标,决定做一下图片防盗链。

如果虚拟主机用的是CPanel,那么就比较方便,直接用Hotlink protection就好了,可惜我不是……

首先是搜到一个WordPress的插件防盗链的方法,叫做WordPress Hotlink protection plugin,号称在防盗链的同时不会影响输出的FEED,很高兴,下载下来试用了一下,图片防盗链成功,不过在Google Reader里面还是不能显示图片。看了一下代码,其实这个插件也是修改.htaccess文件。既然都是同样的方法,那么我直接放个.htaccess文件到uploads目录下,参考了网上若干.htaccess的写法,最后我的版本如下:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !magustest.com [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !xianguo.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !google.cn [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
RewriteCond %{HTTP_REFERER} !testingjob.net [NC]
RewriteRule .*.(jpg|gif|png|bmp|swf|jpeg)$ xxx/forbid.png [R,NC,L]

RewriteCond 里面的第一行是说如果没有Referer(其实正确的英语拼写应该是Referrer),也就是直接访问,那么可以看。接下来的就是白名单,其中允许了谷歌,抓虾,鲜果等网站,那么在这些网站里面订阅我的博客的朋友也都能看到图片了。最后一行RewriteRule就是如果后缀名是那6个(都是吃流量的多媒体文件)的话,那么就显示为xxx/temp/forbid.png这个图片。

一般Linux类和Unix类虚机主机都支持重写.htaccess。这样子设置以后,在常见的阅读器中查看博客文章也能看到图片,同时也能有效地防止盗链图片而导致的流量超标。

Web测试中三个好用的Firefox插件

对于从事Web开发和测试的工程师来说,Firefox是一个优秀的浏览器;因为基于Firefox的插件有很多,这些插件都极大地方便了开发和测试的工作。其中有著名的FireBugFireCookieWeb Developer等,今天要介绍的是另外几个名气没那么大的Firefox插件,他们分别是FlagFoxRemove Cookie(s) for SiteScreengrab

1. FlagFox

这是一个可以将网站服务器所在国家的国旗显示在状态栏上的插件。它通过查询扩展内建的IP地址库,同时通过维基和Geotool获得更多信息。可以参考下图,当我们浏览一个网站的时候在浏览器地址栏的最右边会有一个中国国旗,因为该网站的服务器就在中国;然后把鼠标挪过去放在国旗上面,就会出现该网站的IP,这里就是60.28.210.209。

flagfox_1

其实我知道IP所在的国家对于测试没什么帮助,我只想知道我所访问的网站的IP。因为大家都知道做测试的时候经常需要配HOST,重启浏览器,但是有时候 配好了HOST重启完了还不一定生效;又或者HOST文件太大,有时候一个域名给配上了若干个IP(这是一个失误啦~);又或者是一个域名下有多台测试 机。我想在测试的过程中清楚地知道我现在究竟在访问哪台测试机。这就是FlagFox能起到的作用了
Continue reading “Web测试中三个好用的Firefox插件”

VSTS测试人员版本快速指南已经发布

今天从VSTS LOAD TEST TEAM的一位成员的博客得知,他们今天发布了VSTS测试人员版本快速指南,我下载了浏览了一下,WEB TEST和LOAD TEST的内容讲的较多,这个指南是以问答的形式出现,个人感觉比较好。引用他们的一句原话就是“This doc is a must have for anyone working in VSTT”。可见这个分量多重。

这本指南有别于MSDN文档,这个PDF更加注重实用,主要是总结了在使用VSTT的过程中出现的问题,以及解决这些问题的方法,推荐用MSTEST的同行都下一个哦。

下载地址VSTT Quick Reference Guide 1.0