Silverlight项目的性能测试
既然说到了SL项目的性能测试,我们就不得不八一八SL。
SL就是一个容器,然后将一些应用放在这个容器中来进行操作。当client第一次请求Server的时候,整个容器就会被传送到本地,就是你刚打开SL项目的时候,看到那个进度条时,就是在传送这个容器和容器中的东西。这样一来的话,就相当于B/S结构的系统,变成了C/S结构的系统了,只不过是使用浏览器来做为一个载体。
所以在做SL项目的性能测试的时候,我觉得应该分成两个部分。一方面是类C/S结构的系统测试,另一方面是B/S系统的测试。
既然如此,那么让我们首先来看一下一些B/S结构系统的性能测试要点:
1.准备测试环境。具体包括:选用什么样的硬件环境(计算机配置,网络结构);什么样的软件环境(操作系统,数据库,应用服务器,web服务器);多大的数据量(数据库,文件系统)。
2.需要监控的资源。进行性能测试时,需要监控的系统软硬件资源的占用情况。这和产品的具体情况有关,一般可以考虑的因素包括:CPU使用情况、Memory的使用情况、磁盘的I/O、网络的占用情况、数据库运行状况、web应用服务器运行状况等。
3.测试工具。在进行性能测试的时候,如果人工模拟大规模的并发操作,是非常困难的一件事,所以必须要借助于测试工具。选用什么工具进行性能测试,是自己开发,还是选用第三方的测试工具,要提前做好选择。
SL基于C/S结构系统的性能测试要点:
完整的C/S体系结构,包括网络运行和性能。
1. 服务器测试—测试服务器的协调和数据管理功能,也考虑服务器性能(整体反映时间和数据吞吐量)。
2. 数据库测试---测试服务器存储的数据的精确性和完整性,检查客户端应用提交的事务,以保证数据被正确地存储、更新和检索。
3. 事务测试---创建一系列的测试以保证每类事务被按照需求处理。测试着重于处理的正确性,也关注性能问题。
4. 网络通信测试---这些测试验证网络节点间的通信正常地发生,并且消息传递、事务和相关的网络交通无错的发生。
对于PSD项目的性能测试,我选择了LoadRunner,因为LR11.0已经支持SL的测试。
1. B/S结构的PSD系统性能测试
2. C/S结构的PSD系统(即下载到本地的PSD客户端)性能测试
在使用LR进行测试的时候,是通过通信协议来进行录制脚本的,但是我不确定C/S结构的PSD系统该选择什么样的协议,所以我先使用Protocol Advisor来查找LR建议的协议。
由于PSD在客户端的程序是属于OOB(out of browser)的程序,还得确认这个属于客户端的Win32Application需要一下什么辅助的程序或者参数才能被录制。
SL在客户端的执行时由一个sllauncher.exe的程序负责的,但是这个程序是不是像其他的应用程序一样不需要参数呢?
那就来试一试吧,结果是如果只选择这个程序,那么protocol advisor建议的协议就会是COM/DCOM,但是这样是错误的。
由上面的提示信息可以看出,sllauncher.exe是需要一个参数,这个参数是什么呢?
查看一下桌面的快捷方式属性,我们会发现,目标这一栏中,在需要打开的程序后面,有一连串的数字或者字母,这是什么呢?
其实这串字符是SL程序文件名,是由安装程序随机生成的。
既然sllauncher.exe中使用到程序文件,那么在LR中,sllauncher.exe中的参数也就应该是这组“随机生成”名。
如何找到这组“随机生成”名呢?
非常简单,在C:\Users\当前登录用户\AppData\LocalLow\Microsoft\Silverlight\OutOfBrowser下面就可以找到。
接下来,在LR录制脚本时,输入参数。
应用程序被打开。
这样就可以检测到PSD在客户端使用的是什么协议,LR建议两种协议,第一种是Silverlight,第二种是Web(HTTP/HTML)。这样,我们可以任选其中一种协议来录制脚本。