51Testing软件测试论坛

标题: 【原创】服务器负载情况下,验证客户端是否能正确使用的方法 [打印本页]

作者: wss123    时间: 2005-8-14 00:56
标题: 【原创】服务器负载情况下,验证客户端是否能正确使用的方法
作者:wss123  
  这个话题在sunshinelius斑竹建的性能测试QQ群中的BBS发布过,有朋友说:“自己用客户端按照业务流程走一遍,如果能正常使用是不是就能说明客户端没问题呢?”想想还是不赞同这个做法。服务器负载下,客户端不能正常使用的原因在于:服务器返回的数据错误或者超时,服务器在负载下是个不稳定的状况,打开客户端自己运行一遍的话,有一定的随机性。
  我们应该在LR的脚本里面写校验语句。以winsocket协议为例,winsocket只有一个办法去验证返回的数据是否正确,那就是比较Buf的大小。以我工作中的实例说明一二,比如测试登录操作,客户端是否正常,在于服务器返回的用户信息是否正确,我们先声明一个整型变量,int bufsize;找到服务器返回数据的buf,用lrs_get_last_received_buffer_size函数, bufsize=lrs_get_last_received_buffer_size("socket0");  然后写判断语句,
if(bufszie<1024)
{
  lr_error_message("出错,获得包的大小:%d",bufsize);
}
请注意:winsocket的buf的大小单位是字节。这样运行时我们可以实时地发现问题。
   在B/S模式下的话,web协议可以设置检查网页的内容、设置检查点,以确定服务器负载下,浏览器访问是否正确。在vugen的用户指南中有很详细的说明,可以翻阅。
   夜深了,睡觉去,帖子还需各位高手指点批评。交流才能使人少走弯路。

[ Last edited by wss123 on 2005-8-16 at 20:28 ]
作者: sunfy    时间: 2005-8-15 10:53
我想问一下,那通常我们做性能测试的时候,需不需要设置检查点来判断执行的事务有没有被正确的执行(即业务有没有被执行)。
比如
1。 300个用户并发,如果不设置检查点的话,事务都是以pass状态结束;
2。 但是设置了检查点的话,通过检查点的设置LR会检查到一些事务没有被正确的执行。
那么我们判断服务器能否支持多少个用户并发时是以第一种结果为准还是以第二种结果为准?
作者: performer    时间: 2005-8-15 12:38
我觉得是是第二种,一些事务没有被正确执行就是你的应用在高压下出了问题,这就不能算系统能承受这种情况的并发数。特别是web应用,返回包的检查是很重要的。lr只能根据返回的Http是不是异常包譬如404,500错等,但是如果是你的应用抛回前台的错误信息,lr就不能正确识别,这种情况你肯定要加手工判断,判断的方法你可以用web_reg_save_param()函数来实现
作者: wss123    时间: 2005-8-15 21:51
我们的LR脚本当然要校验数据包是否正确,其实客户端在压力下不可用的话,也就是服务器返回的数据包有错了。通过lr_error_message等语句cotroller运行时我们可以通过 output窗口看到是哪个脚本、哪个虚拟用户在第几次迭代出错了,也有利于应用程序的跟踪。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2