手动关联的过程大致如下:
第一步:录制测试脚本,录制二遍
第二步:使用WinDiff工具找出两次脚本的不同,判断是否需要进行关联
第三步:确定插入关联的位置
第四步:在VIEW TREE中使用web_reg_save_param函数手动建立关联
第五步:将脚本中有用到关联的数据,用参数代替
第六步:验证关联的正确性
### 手动关联的技巧与步骤详解
#### 第一步:录制测试脚本,录制两遍
在手动关联之前,首先需要录制两遍测试脚本。这一步骤的主要目的是为了能够对比两次录制之间的差异,从而更好地识别出哪些部分是需要进行关联处理的。录制时需要注意的是确保环境的一致性,避免因为外部因素导致不必要的变化。
#### 第二步:使用WinDiff工具找出两次脚本的不同,判断是否需要进行关联
完成脚本录制后,接下来需要借助WinDiff这样的比较工具来找出两次录制脚本之间的差异。具体操作步骤如下:
1. **加载脚本**:首先加载两次录制的脚本,通常情况下是通过VuGen工具中的“Tools”菜单选择“Compare with Vuser”,然后选择一个录制好的脚本。
2. **运行比较**:启动WinDiff工具对两个脚本进行比较。WinDiff会在界面中高亮显示不同之处,其中绿色表示相同的部分,红色和蓝色则分别表示两个脚本中独有的内容。
3. **查看详细差异**:可以通过“Options > View > Show Inline Differences”选项来查看具体的差异内容,这有助于更细致地理解哪些数据需要关联。
#### 第三步:确定插入关联的位置
找到需要关联的数据之后,下一步就是确定这些数据在脚本中的具体位置,以便于后续的关联操作。通常情况下,需要关联的数据位于某些特定的请求或响应中,因此需要仔细分析脚本中的每一步操作,判断关联数据出现的具体位置。
#### 第四步:在VIEW TREE中使用`web_reg_save_param`函数手动建立关联
在确定了需要关联的数据位置后,就需要使用`web_reg_save_param`函数来手动创建关联。这一过程主要分为以下几个小步骤:
1. **打开VIEW TREE视图**:首先切换到VIEW TREE视图模式。
2. **选择插入位置**:在需要插入关联代码的地方,右键选择“Insert Before”。
3. **添加步骤**:在弹出的对话框中选择“Add Step”,然后找到并点击“Find Function”,选择`web_reg_save_param`函数。
4. **填写参数**:
- Parameter Name:填入需要保存的参数名称,例如`sessionid`。
- Left Boundary:填写左边界,即参数值前的字符串,例如`Session_id:`。
- Right Boundary:填写右边界,即参数值后的字符串,例如`;`。
- Search In:选择搜索范围,默认为`Body`即可。
示例代码如下:
```c
web_reg_save_param("sessionid", "LB=Session_id:", "RB=;", "Search=Body", LAST);
```
#### 第五步:将脚本中有用到关联的数据,用参数代替
在完成了上述关联操作后,接下来需要将原本脚本中硬编码的关联数据替换为刚刚保存的参数。例如,将原本的`Session_id`值替换为`{sessionid}`。
示例代码如下:
```c
web_submit_form("login.php_2", "Snapshot=t2.inf", ITEMDATA, "Name=login", "Value=wangjin", ENDITEM, "Name=password", "Value=wangjin", ENDITEM, "Name=Session_id", "Value={sessionid}", ENDITEM, "Name=Submit", "Value=Login", ENDITEM, EXTRARES, "URL=/media/images/border_bg_l.gif", ENDITEM, "URL=/media/images/header_bg.gif", ENDITEM, "URL=/media/images/th.gif", ENDITEM, LAST);
```
#### 第六步:验证关联的正确性
最后一步是对关联结果进行验证,确保关联操作正确无误。这一步可以通过重新运行脚本来完成,并且观察脚本执行过程中是否存在错误或者异常情况。如果一切正常,则说明关联操作成功。
手动关联是一项复杂但重要的任务,它能够帮助测试工程师更好地管理测试脚本中的动态数据,提高脚本的稳定性和可维护性。通过遵循上述步骤,可以有效地完成手动关联工作,为后续的自动化测试打下坚实的基础。