代码改变世界

LoadRunner使用遇到的问题集锦

2009-12-28 13:23  听风吹雨  阅读(1978)  评论(1编辑  收藏  举报
把HTML的内容输出到LOG中的方法 - by Viajar

1:在脚本要记录HTML的URL前面加入函数:web_create_html_param("MyHtml", "<html>", "");;
2:在脚本要记录HTML的URL后面加入函数:lr_output_message("###the HTML is %s", lr_eval_string(" {MyHtml}"));;
3:在Controller中设置Run-Time Settings,把log设置为Always Send Message;
4:在Controller中设置Run-Time Settings,把Miscellaneous设置为在发生错误时继续运行(在这里不是必须);
5:在Controller中设置Run-Time Settings,把Preferences设置为Enable image and text check;(在这里不是必须);
6:在Controller的日志文件RES中可以查看到每个虚拟用户的LOG;


如何在Controller中添加系统资源检测 - by Viajar

今天早上突然想把Windows的性能监视放到LR中,达到方便快捷的目的,下面的是具体的步骤:
1:使用192.168.0.159作为监控的对象,开通Remote Procedure Call和Remote Registry两个服务,Remote Registry一般都是给禁止的,可以改为手动并启动;
2:在159中右击我的电脑,选择管理->共享文件夹->共享 在这里面要有C$这个共享文件夹;
3:在159中使用命令netstat /ano查看445端口是否被打开;
4:输入\\192.168.0.159\c$ ,再输入用户名和密码,如果能进入c盘,那就说明有控制权了;
5:在Controller的Run中找到Windows Resources,对图点击右键中的Add Measurements,添加计数器;
6:需注意159机上的BlackIce;
7:对Windows Resources Graph的技巧使用,可以冻结窗体,导出HMTL,显示某个计数器等;

 

对ANALYSIS中不能导出页面细分下的子项的问题的处理方法 - by Viajar

1:问题描述:对ANALYSIS的导出WORD功能中只能导出树中的图表,在页面细分中点击不同的节点会有不同的图表,但是却无法把所有节点的图表一起导出;
2:如果想生成Time to First Buffer Breakdown下面Login事务和Loading事务下的图表都导出来,方法就是新建两张Time to First Buffer Breakdown图表,在不同的下面点击图表,并修改名称;
3:在导出列表中选中要导出的图表:Time to First Buffer Breakdown-All && Time to First Buffer Breakdown-Login && Time to First Buffer Breakdown-Loading;
4:总结:虽然这样做有点麻烦,但是比之前点击每个图再导出一个WORD来有用的多,但是LR可以做到在导出列表中以树的形式显示可以导出的图表,不过LR要解决图表没有名称的问题;

 

在中文版Analysis中显示系统资源图的原因与解决 - by Viajar

1:是否可以通过修改ACCESS记录来修改这个BUG??
2:不知道它添加图表的列表是不是通过数据库LOAD的?? 迄今还没有找到这些记录,只找到资源图表数据;
3:解决办法1:是用VNC截图,但是这样只能看到计数器曲线,没什么意义;
4:解决办法2:在Controller中导出系统资源数据,里面有量化数据,比较真实,不过每个场景都要导出一次就很麻烦,并且不好管理,无法对数据进行帅选和合并,如果打开导出的页面有乱码,那就在编码方式选择"自动选择";
5:解决办法3:使用英文版生成的ANALYSIS,再拿到中文版下面,是可以看到系统资源这个图表的,其实我应该早想到这样的,因为在中文版下无法显示不是Analysis的错,而是Controller的错,Analysis里面是包括ACCESS和其它包含系统资源的记录的,所以在中文版是能显示的;

 

终于使用LR实现了不同虚拟用户使用不用的帐号登陆,实行不同用户并发的问题 - by Viajar

1:在脚本设计中添加参数,参数名称为LoginUserName,选择参数类型为FILE;
2:很关键的一步就是:选者UNIQUE和EACH ITERATION/ONCE;
3:在脚本中把登陆名改为参数名;
4:使用Controller进行测试,在运行时设置LOG记录;
5:查看LOG,可以看到每个虚拟用户是使用不同的帐号登陆的;
6:总结:使用SEQUENTIAL会使得参数每次出现的地方的值都不一样;如何想使用更多用户的登陆可以使用参数数据库化;

 

LR参数数据库化(姑且这么叫,就是参数的来源于数据库)实践 - by Viajar

1:以XQP登陆帐号为例,把bw_Users表中的UserName做为参数LoginUserName的值;
2:过程都比较简单,需要注意的是使用FILE参数类型,参数值列表中的值只有100个,其它的可以通过Edit with Notepad查看;
3:在Update Value on 中有以下几个选项:
Each Occurrence:在运行时,每遇到一次该参数,便会取一个新的值;
Each iteration:运行时,在每一次循环中都取相同的值;
Once:运行时,在每次循环中,该参数只取一次值;
可以看出,是按照从脚本小范围到大范围的选择;
4:在Select next row 有以下几种选择:
Sequential:按照顺序一行行的读取。每一个虚拟用户都会按照相同的顺序读取;
Random:在每次循环里随机的读取一个,但是在循环中一直保持不变;
Unique :唯一的数。注意:使用该类型必须注意数据表有足够多的数;
Same Line As 某个参数(比如Name):和前面定义的参数Name 取同行的记录;通常用在有关联性的数据上面;
可以看出,是和循环(迭代)很有关系的;

 

发现可以对参数数据库化的数据进行作弊,作弊方法如下: - by Viajar

1:使用数据库管理器导出想要的数据为EXCEL;再保存为dat文件,再参数设置里面引用该文件;
2:在脚本文件夹中找到[参数名].dat文件;
3:对[参数名].dat文件进行编辑,把EXCEL中的数据拷贝到dat文件中;
4:进入脚本编辑,查看参数,可以见到刚刚拷贝的数据;
总结:虽然这个方法没什么很大用处,但是在无法使用VUGenerator连接数据库的时候就非常有用;