May 15th, 2007 2,345 Views
问题源于51testing的一个帖子,一个朋友想要把从服务器端利用关联取回来的值跟预定的值进行对比,以此判断是否执行成功。关联函数当然用的是web_reg_save_param。预定的期望值存储在Excel文件的固定一列。
我首先想到的就是利用方法读取Excel文件,然后在LoadRunner中利用c函数进行对比。其实Excel提供的接口相当强大,以前我们经常利用一些VBscript提供的API进行编程,解析Excel中的内容。而且Mercury的功能测试工具Quick Test Professinal提供了对Excel的强大支持。测试数据直接就是保存在Excel中,而且编程语言就是VBScript。不过LoadRunner就没有那么幸运,用的是更加通用的C语言。接下来很多朋友就给出了自己的看法。
阅读全文 »
Share This
归类于 测试工具 | 就等您评论了 »
April 24th, 2007 3,205 Views
最近被一个代理的问题搞的纠缠不清。我这个人其实很多时候是不求甚解的那种。自打上次跟Zee版主交流了以后,很受打击,惭愧的要命。打算以后改改这个毛病。凡是要探个究竟,正所谓惩前毖后,治病救人嘛。:)
问题是这样的,VUGen里面录制的脚本,回放的时候出错,错误信息是:
[Net An. Warning ( 218: 9f0)] Request Connection: Remote Server @ 66.102.7.147:80 (Service=) Failed attempt #3. Unable to connect to remote server: rc = -1 , le = 0)
[Net An. Error ( 218: 9f0)] Request Connection: Remote Server @ 66.102.7.147:80 (Service=) NOT PROXIED! (REASON: Unable to connect to remote server: rc = -1 , le = 0)
重新安装了LoadRunner,结果同样。从错误的表面看是代理的问题,但是本机上网不需要任何代理。也没有设置任何的代理。搜了一下,发现了问题的解决方法。其实挺搞笑的。居然是杀毒软件的问题。
阅读全文 »
Share This
归类于 测试工具 | 目前才1 条评论 »
April 22nd, 2007 2,789 Views
最近在论坛上看到几次这样的问题,今天突然想起来,觉得比较典型,有必要分析一下。
这个问题的具体描述大概是这样的:在web应用下,模拟十个用户并发进行数据的添加,结果每次执行全部成功,但是数据却不是十条,每次数据不一样,但是都比十小。
乍一看,可能是数据参数化的问题,其实仔细想想,道理其实很简单。是数据库的问题。
阅读全文 »
Share This
归类于 测试工具 | 已经有4 条评论 »
April 17th, 2007 2,659 Views
看到51上三个高手Zee, 大漠飞鹰,xingcyx的一场非常精彩的关于并发用户数和集合点的讨论,很有意义。如果对这两个概念不清楚的朋友,一定要仔细领悟了。
故事开始于xingcyx的一番话:
声明:以下的问答是我根据实际工作经验和通过各种途径得到的信息而整理的,其回答内容主要代表我个人观点,并非标准答案,读者如有不同意见,欢迎批评指教。
Q:并发用户数和集合点有必然联系吗?在性能测试中必须使用集合点来测试吗?
A:并发用户数,顾名思义,就是同时操作的用户,这里的“操作”可以指对系统真正的操作,也可以只是连接(此时通常叫作“并发连接数”),而集合点是一种特殊情况下的并发,多用于测试系统在瞬间加压的表现。因此,并发用户数和集合点有联系,但并非必然的联系,在测试并发用户的性能测试场景中,可以不必设置集合点,这将视测试目标和测试策略而定。
Q:不设置集合点的测试,能代表是“并发”操作吗?
A:有这样一种说法,设置集合点是为了确保“严格意义上”的并发,其实从本质上看,这主要是一个看问题的粒度大小的问题。集合点的作用是通过工具的控制,确保一个请求严格的“同时”从前台提交到后台。可是如果微观地看,是不存在严格意义上的并发的,即使在客户端通过设置集合点的方式将100个请求同时提交到后台,经过网络上的传输消耗,可能它们并不是同时到达的,而即便100个请求同时到达服务器端,受到中间件和应用系统、数据库的各种连接池、缓冲区, CPU处理队列等的限制,也可能在服务器端产生等待的。因此,严格意义上的“并发”可以说是不存在的,我们需要做的是在可以接受的粒度范围内取得一个最佳的平衡点,站在这个平衡点的层面上去看待“并发”这个问题。
性能测试无非有两个目的,一是评测,二是调优。
在以评测为目的的性能测试中,用户更关心的是业务上的并发,也就是真实业务场景的并发情况,这种情况下只要按照业务操作的模式去设置场景就可以了,并不需要设置集合点。
阅读全文 »
Share This
归类于 测试工具 | 就等您评论了 »
April 17th, 2007 2,397 Views
把昨天的功课补了,本来打算昨天分析一个典型案例,可惜太忙了。所以这么说。
以前一直没有解决的问题,利用LoadRunner测试一个应用的时候,需要验证域用户,所以即使录制成功,每次回放的时候都提示错误,用户名和密码不对,对此耿耿于怀了很久。今天居然解决了。解决方法就是一个简单的函数调用: web_set_user,此函数的解释和用法如下:
The web_set_user function is a Service function that specifies a login string and password for a Web server or proxy server. It can be called more than once if several proxy servers require authentication. web_set_user overrides the run-time proxy authentication settings for user name and password.
阅读全文 »
Share This
归类于 测试工具 | 目前才1 条评论 »
April 12th, 2007 5,732 Views
在利用LoadRunner进行性能测试的时候,Windows服务器的资源是经常需要监控的对象。其实除了LoadRunner提供的计数器,似乎Window服务器并不像Unix或者Linux提供众多的性能监控方法,比如Top或者vmstat等。另外有很多第三方的工具可以选用以增强Windows服务器的监控途径,下面是一些工具的列表。
【监视类】
CPUMon v2.0
CPU性能监视工具。可以获取CPU计数器信息。该版本集成了Perfmon。
http://www.sysinternals.com/ntw2k/freeware/cpumon.shtml
DebugView v4.31
截取Win32设备驱动程序发出的消 息,允许通过本机或网络查看和录制调试信息而不打开一个活动的调试器。
http://www.sysinternals.com/ntw2k/freeware/debugview.shtml
阅读全文 »
Share This
归类于 性能测试 | 已经有8 条评论 »
April 11th, 2007 2,992 Views
今天在51testing上回复一位朋友的文章,关于LoadRunner中负载生成器和IP欺骗的问题,其实这是两个完全不关系的概念。搞不明白为什么还会搞混淆。下面具体说说:
当运行场景时,虚拟用户使用它们所在的Load Generator 的固定的IP 地址。同时每个Load Generator 上运行大量的虚拟用户,这样就造成了大量的用户使用同一IP 同时访问一个网站的情况,这种情况和实际运行的情况不符,并且有一些网站会根据用户IP 来分配资源,这些网站会限制同一个IP 的登陆,使用等等。为了更加真实的模拟实际情况,LoadRunner允许运行的虚拟用户使用不同的IP 访问统一网站,这种技术称为“IP 欺骗”。启用该选项后,场景中运行的虚拟用户将模拟从不同的IP 地址发送请求。该选项非常的有用。
阅读全文 »
Share This
归类于 测试工具 | 就等您评论了 »
April 1st, 2007 2,300 Views
昨天在广州交流会开始之前,一个朋友问起这样一个问题:他们公司的系统上线以后,用户分布在各个不同的地区,而且接入系统的方式和带宽也不同,这种情况下进行性能测试,如何保证更加真实的模拟用户行为?用LoadRunner可以做到吗?
回答当然是肯定的,其实这些都是简单问题的组合,这样的问题考察的也是你对工具的熟悉和掌握程度。在VUGen里面,是可以通过RTS (runTimeSetting)来模拟一个单个用户更加真实的行为,比如思考时间,网络带宽,是否清除cache等等。同样的设置也可以在场景中进行设置。而且LoadRunner提供设置不同用户组不同RunTimeSetting的功能。以达到模拟不同用户行为的更加真实组合。
假设有三种不同带宽的用户,而且上传和下载的带宽也有所不同,那么可以录制两个脚本,分别模拟上传和下载的用户行为,再Controller里面,建立六个不同的脚本组,脚本组的用户数可以按照绝对或者百比分的方法分布。比如100,50,200用户或者20%,40%,40%等,这取决于你的业务模型。然后设置不同的带宽和分布情况。这样不同用户组的虚拟用户模拟出来的就是不同带宽的用户实际接入情况。就可以满足之前的问题的要求。参考下图:

Share This
归类于 测试工具 | 就等您评论了 »