您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > LoadRunner进行Web测试时吞吐量和点击量深入研究
LoadRunner进行Web测试时吞吐量和点击量深入研究一起测试网:软件质量专家2006年7月9日一起测试网技术文章www.17testing.com:软件质量专家第2页共16页版权声明:版权所有©2006,一起测试网™主要作者:王玉亭。联系方式:MSN:wangyuting66@hotmail.com一起测试网技术文章www.17testing.com:软件质量专家第3页共16页目录1前言.............................................................................................................................................42关于“一起测试网”.................................................................................................................43本文档所涉及的软件.................................................................................................................44一次简单访问主页的真相.........................................................................................................55吞吐量和点击量深入研究.......................................................................................................126结束语.......................................................................................................................................16一起测试网技术文章www.17testing.com:软件质量专家第4页共16页1前言很多从事软件测试工作的网友在使用Mercury的性能测试工具LoadRunner做性能测试的时候,常常遇到一个问题,这就是对测试结果的分析无从下手。在性能测试项目中,最困难的部分就是对性能测试结果的分析。这需要测试人员对被测试系统有着深刻的理解。但是这又是大部分性能测试人员所缺乏的。本文以一个小实验为手段,深入研究LoadRunner在Web系统性能测试中两个重要指标TotalThroughput(bytes)和TotalHits的真正含义,引导读者研究如何深入分析测试结果。本文只是一个小小的砖头,希望提供一个研究的手段,帮助大家深入研究测试结果。Let’sgo!2关于“一起测试网”“一起测试网”(wwww.17testing.com,以下简称17testing或一起测试网)是苏州市软件评测中心有限公司推出的关于软件测试方面的大型技术门户网站。“一起测试网”将本着服务软件测试人员,推动软件测试产业发展的目的,为广大测试人员提供更多更好的技术资料。3本文档所涉及的软件在我们开始下面的旅行之前,我们要准备好做实验所需要的软件。这些软件都可以从www.17testing.com上下载。性能测试工具LoadRunner8.0试用版:http://www.17testing.com/zyxz/csgjzy/6.html一起测试网技术文章4一次简单访问主页的真相为了深入理解测试结果,我们要深入理解被测试的系统在表面的背后到底发生了什么。下面我们精心构造一个小实验,来深究一下浏览器访问一个简单的页面背后到底发生了什么。这样的实验有助于我们了解最基本的HTTP通讯的真相。我们使用的工具是我编写的一个小工具,一个简单的Proxy程序,可以帮助我们捕获一次通讯的全部过程。这个小工具的下载地址是:http://www.17testing.com/bbs/viewthread.php?tid=5&extra=page%3D1下载VuGen.zip,把它解开。这个程序可以在VC6下面编译。如果你找不到VC6,可以在一起测试网的如下地址找到:VC6:http://www.17testing.com/bbs/viewthread.php?tid=806&extra=page%3D1MSDN:http://www.17testing.com/bbs/viewthread.php?tid=831&extra=page%3D1为了帮助大家学习VC的编程。我把MSDN也放上来了。如果大家不想编译,可以直接运行VuGen\Release\VuGen.exe。如下图所示:www.17testing.com:软件质量专家第5页共16页一起测试网技术文章我们先搭建一个Apache服务器,并启动起来。关于如何搭建Apache,请参考网上的相关文章。最省事的方法是到Apache网站上下载一个Windows的安装程序,鼠标双击,就完成了安装任务。缺省配置下,Apache的Web文档主目录在$APACHE_HOME/htdocs目录下。其中$APACHE_HOME指的是Apache的安装目录。我们在这个目录下只留两个文件index.html.en和apache_pb.gif。把index.html.en重新命名为index.html。这样,在htdocs目录下只有两个文件:zindex.html,大小是1456字节zapache_pb.gif,大小是2326字节启动Apache后,我们通过浏览器访问该服务器,得到如下界面:www.17testing.com:软件质量专家第6页共16页一起测试网技术文章如果你安装过Apache软件,你应该熟悉这个界面。它实质上是Apache的测试页。我们通过刚才的小程序研究一下访问这个简单的页面,在网络通讯上发生了什么。我使用的Apache服务器的IP地址是192.168.0.8。那么我首先运行VuGen.exe。选择“增加”按钮,如下图所示:www.17testing.com:软件质量专家第7页共16页一起测试网技术文章在随后出现的对话框中按照如下方式设置。VuGen是一个proxy代理程序。这种设置的意思是:把转发到本地1234端口的http请求转发到192.168.0.8的80端口。由于80端口是Web服务器的标准端口。本程序实际上把通过proxy截获发往192.168.0.8的http请求。一起准备就绪,我们选择VuGen主界面上的“录制”按钮。VuGen开始进入录制状态。然后我们打开浏览器,输入http://localhost:1234,出现下图界面。www.17testing.com:软件质量专家第8页共16页一起测试网技术文章这表明VuGen.exe把发往本机1234端口的http请求正确地转发到192.168.0.8的80端口,并把结果返回给浏览器。我们在VuGen的主界面上发现如下信息:VuGen向我们报告说:浏览器向Web服务器发送了两个请求包,接受了两个请求包,并且把全部的通讯数据都录制下来了。这个是VuGen的基本功能。www.17testing.com:软件质量专家第9页共16页一起测试网技术文章我们把通讯数据包拷贝到一个记事本里面。仔细观察这次HTTP通讯的全部记录。我们发现了http通讯的全部轨迹和真相。由于我们要访问的主页是两部分组成的,一部分是文本文件index.html,一部分是图片文件apache_pb.gif。所以在一次访问过程中,实际上存在着两次请求动作。对应的通讯如下面所示:浏览器向Apache服务器发送请求GET/HTTP/1.1,Apache返回的是index.html。发送请求,要求获取index.html:接受index.html浏览器接收到index.html后,内置的HTML语法分析器开始解析index.html,发现里面还有一个图片链接apache_pb.gif,于是浏览器再次发送请求GET/apche_pb.gif,要求获得图片文件apache_pb.gif。如下图所示:接收的通讯包里面包含了apache_pb.gif的全部内容,如下图所示:www.17testing.com:软件质量专家第10页共16页一起测试网技术文章通过这个小小的实验,我们明白了浏览器的工作原理:当我们访问某个主页html文件时,浏览器首先把该html文件拿到,然后进行语法分析。如果这个html文件还包含图片、视频等信息,浏览器会再次访问后台Web服务器,依次获取这些图像、视频文件,然后把html和图像、视频文件组装起来,显示在屏幕上。这个过程和我们的直观印象很吻合。我们归纳一下这次简单的访问,发生的通讯过程:这个就是一次简单的http通讯的全部真相。读者还可以仔细阅读VuGen.exe捕获下来的全部通讯包,会更加深入地了解http协议的一些基本概念。建议读者结合http的官方文件来学习。官方文件是RFC2616,可以从如下网址下载http://www.17testing.com/bbs/viewthread.php?tid=970&extra=page%3D1做完这个小实验后,我们提出了一个重要的问题:在LoadRunner分析报告中,www.17testing.com:软件质量专家第11页共16页一起测试网技术文章有TotalThroughtput(bytes)和TotalHits两个重要的指标。我们简称为吞吐量和点击量。那么这两个指标的真正含义是什么,是怎么计算出来的呢?以本次实验为例,用户每访问一次主页,底层通讯发生了两次“请求-接收”,发送了648个字节,接收了4373个字节。那么在一次访问中,吞吐量是4373字节呢?还是4373+648字节呢?点击量是一次呢?还是两次?下面的实验就是利用LoadRunner录制上面的访问行为,进行压力测试,看看分析报告中给出的数据到底是多少。5吞吐量和点击量深入研究我们利用LoadRunner录制脚本,运行LoadRunner,选择录制脚本。在录制协议中选择http。由于这样的录制是非常简单的,其过程不在赘述。在开始录制对话框中输入我们要访问的网址:http://192.168.0.8。LoadRunner录制Web脚本有HTML模式和URL模式。我们可以分别录制这两种模式的脚本:HTML模式录制的脚本如下图:www.17testing.com:软件质量专家第12页共16页一起测试网技术文章URL模式录制的脚本如下图所示:从这两个脚本的区别中,我们可以看出,URL模式是显示地把一次通讯过程按照www.17testing.com:软件质量专家第13页共16页一起测试网技术文章真实发射功能的状况划分成了两个函数。而HTML模式把这个过程用一个语句包含了。为了让性能测试的数据更加准确,我们决定把测试时间延长一下,每个脚本跑1000遍。在RunTimeSetting里面做如下设置:然后我们启动LoadRunner的Controller,把脚本放进去,只跑一个虚拟用户,跑一次。由于脚本里面设置了跑1000遍,所以一次测试,LoadRunner将向后台发送请求1000次。www.17testing.com:软件质量专家第14页共16页一起测试网技术文章然后我们启动压力测试,每次测试完毕,保存结果。然后我们用分析器打开测试结果。在测试结果中,我们发现了如下信息:我们发现,运行1000次后的吞吐量是4373000字节,点击量是2000次。很显然,每次访问时的吞吐量是4373000/1000=4373字节,而每次访问时的点击量是2000/1000=2次。用html模式的脚本和url模式的脚本运行,
本文标题:LoadRunner进行Web测试时吞吐量和点击量深入研究
链接地址:https://www.777doc.com/doc-10166 .html