{联机测试}
又名:分布式测试,多机联合测试
含义:使用多台pc测试机联合产生更大的并发用户数去模拟访问同一个脚本
原理:借助Load Generator负载生成器及Agent代理程序在其他主机上模拟更多用户数,解决单台测试机无法模拟大量用户的问题
设置:主控机
负责具体业务实际操作,在场景中加载脚本,设置用户数,与测试机建立连接,将脚本中localhost或127.0.0.1改为主控机的IP地址
负载机,
负责产生更多用户数,需要安装Load Generator或者LR工具,并启动Agent。
主控机与负载机要能连通,即在同一网段中:使用ping命令测试
事项:
1)多台测试机要在同一个网段下,网络物理连接;
2)负载机安装Load Generator、启动Agent进程;
3)添加负载机并检查Load Generator的连接是否成功
4)主控机选择脚本、分配合理的VU数,选择负载机
加载脚本到控制台(设置多个脚本组,分配用户):
组名 脚本路径 VU数据 Load Generators
buy1.2 day06\buy1 10 localhost
buy1.2_1 day06\buy1 10 负载机的IP
使用控制台中Load Generators窗口进行添加、检查连接:
控制台 -> Scenario菜单 -> Load Generators
Add: 添加负载机
Connect: 对每个测试机点击Connect按钮检查连接情况
结果为Ready 表示成功
为Failed 表示失败
{文本检查点}
属于增强脚本的技术
A)在录制时添加:
B)在录制后添加:
在Vugen组件中-》Tree试图-》找到请求-》HTML View-》选中文本-》
Add a text check(web_reg_find)
{关联技术}
【介绍】
英文:Correlation,
关联函数:
web_reg_save_param(“参数名”,
“LB=左边界字符串”, // Left 左边界
“RB=右边界字符串”, // Right 右边界
LAST);
类似于参数化,但又不同:关联的数据是服务器生成的动态数据
本质:查找数据,需要指定左边界和右边界
【原理】
将脚本中的静态数据使用参数替换,分别接收服务器所发送的、动态的、每次都可能不一样的数据,从而保证回放的数据也跟着变化。
【场合】
脚本中出现了动态数据,导致业务的不一致,录制时成功,回放时失败,此时需要做关联。
产生问题的原因:录制时生成的脚本,记录了sessionid,是一个动态数据;而服务器端每次访问时会产生一个动态数据,录制的脚本无法适应服务器端的变化,导致出错。
脚本如何调试:将静态数据 改为 动态数据(关联技术)
【思路】
1)先找到脚本中的动态数据(需要关联、替换的)
2)根据动态数据来查找响应的请求
3)在请求函数之前编写关联函数
4)将动态数据使用该关联函数中的参数代替
【如何找到动态数据】
找到是进行关联的前提、关键
动态数据是每次录制、回放都可能变动的值,
方式:
录制两个业务流程一样的脚本,使用WDiff工具进行比对找出不一样的数据。
白色区域表示数据为相同,黄色区域表示数据为不同,
动态数据就在黄色区域中,一般是一串无规律的字符串,而坐标值,思考时间,检查点函数文本以及整个请求则不是。
【如何编写关联函数】
位置:在对应的请求之前写
格式:web_reg_save_param(“参数名”,”左边界值”,”右边界值”,LAST);
参 数 名:见名知意
左边界值:动态数据左边的字符(包含空格在内)
右边界值:动态数据右边的字符(包含空格在内)
图形化操作:在请求函数之前插入
【关联类型】
1)自动关联(很少用,不稳定)
2)手动关联(常用,灵活)
【手动关联步骤】
1)录制2份相同业务的脚本,进行比对来找出动态数据,并将动态数据以及左右2边的数据复制一份到脚本中注释起来,关联函数要用到。
Tools-》compare with Script
2)在Generation Log中找到第一次出现该动态数据的相应请求;
步骤:
1)只复制动态数据从第一行开始找:Ctrl+F,
2)找到第一次出现该动态数据的响应id号
3)向下翻找,找到与当前响应id相同id的请求,就是相应请求
请求:Request或者Events,
一般都是web函数,且在当前动态数据的下方不远处
如果找不到,就向上找最靠近的请求(这种情况不多见)
找到请求后,根据请求的快照名,来定位出脚本中的请求。
3)在相应请求之前写关联函数,将动态数据自动赋值给某变量(参数);
web_reg_save_param( , , ,LAST);
4)将脚本中的静态数据替换为该参数
5)回放脚本,成功, 关联完成
【练习1】
准备:打开WebTours首页,点击administration连接:
-> 选择第三项:
Set LOGIN form’s action tag to an error page.
-> 点击Update按钮
目的:模拟向服务器发送请求的userSession的ID值为动态数据
导致回放脚本时报错,从而需要关联。
业务:录制一个用户登录-退出,
录制时成功的,但回放是失败的。
【关联的目的】
让脚本能够适应动态数据的变化,实际项目中是否需要关联取决于服务器端软件设计、开发方式。
【练习2】将上一个练习的复选框取消,点击Update按钮
业务:购票,对出发城市和到达城市做参数化,需要关联
出发城市:2个
到达城市:2个
城市不同,航班信息肯定也不不同,其航班信息就是动态数据
【自动关联】
介绍:是VuGen组件提供的自动扫描关联的处理策略,它的原理是对同一个脚本运行和录制时的服务器返回进行比较,来自动查找变化的部分,并且提示是否生成关联
步骤:
A>录制脚本
B>打开菜单Vuser->Scan Script for Correlations,扫描需要关联的地方
C>扫描后,需要关联的地方会出现在Correlation Results下面,然后选中,点击右边的Correlate进行关联
注意:并不是每次都能扫描的到,所以自动关联不稳定,建议还是使用手动关联。