### 使用LoadRunner测试TUXEDO的关键知识点
#### 一、LoadRunner简介
LoadRunner是一种广泛应用于预测系统行为和性能的工业标准级负载测试工具。它通过模拟成千上万的用户并发访问来对整个企业架构进行测试,帮助开发者和测试人员更快地查找和解决问题。该工具能够模拟真实的用户场景,通过生成虚拟用户来测试系统的极限能力和响应时间。
#### 二、LoadRunner测试BEA TUXEDO
**1. 虚拟用户(Virtual Users)**
LoadRunner使用虚拟用户来模拟真实用户的交互行为。这些虚拟用户在中央控制器(Controller Station)的监控下工作。在创建测试方案时,首先需要创建虚拟用户执行脚本。LoadRunner提供了Virtual User Generator (VuGen) 工具来录制或编辑虚拟用户脚本。
**2. 使用VuGen创建虚拟用户执行脚本**
- **步骤A:** 从菜单中选择运行Virtual User Generator (VuGen)。
- **步骤B:** 创建一个单协议脚本,选择协议类型为“Tuxedo7”。
- **步骤C:** 选择工具栏中的录制按钮来录制一个脚本。在弹出的窗口中输入Tuxedo客户端程序的可执行文件名(例如SimpApp.exe),并选择“Record into Action”作为Action。点击“OK”开始录制脚本。此时VuGen会启动SimpApp.exe,按照指示输入WSNADDR,并输入测试字符串(例如“Tuxedo is powerful!”)。之后,点击TOUPPER,等待TUXEDO服务器完成请求并将输出字符串(例如“TUXEDO IS POWERFUL!”)写入“Output string”字段,最后点击停止录制按钮。
- **步骤D:** 编辑Vuser脚本。在步骤C中所做的所有操作都会被录制下来,并保存到一个脚本文件中。以下是一个示例脚本内容:
```c
/* This file is generated by LoadRunner. You may edit it carefully! */
#include "lrt.h"
#include "replay.vdf"
Actions()
{
lrt_tuxputenv("WSNADDR=//172.22.32.25:7110");
lr_think_time(3);
tpresult_int = lrt_tpinitialize(LRT_END_OF_PARMS);
lrt_abort_on_error();
data_0 = lrt_tpalloc("STRING", "", 1);
/* Request STRING buffer 1 */
lrt_strcpy(data_0, sbuf_1);
data_1 = lrt_tpalloc("STRING", "", 1);
tpresult_int = lrt_tpcall("TOUPPER",
data_0,
0,
&data_1,
&olen,
0);
/* Reply STRING buffer 1 */
lrt_abort_on_error();
lrt_tpfree(data_0);
lrt_tpfree(data_1);
lrt_tpterm();
return 0;
}
```
这里需要注意的是,脚本中加粗的函数是LoadRunner对TUXEDO函数的二次封装,用于更好地与LoadRunner框架集成。
- **步骤E:** 点击工具栏中的运行按钮来执行录制好的脚本,确保脚本能够正常运行。
**3. 使用Controller来调度虚拟用户**
- **步骤A:** 从菜单中选择运行Controller。
- **步骤B:** 创建一个新的Scenario,并选择刚才录制的脚本(例如simpapp)。
- **步骤C:** 点击“Edit Schedule”来编辑压力调度。可以在“Quantity”字段中输入100,表示使用100个虚拟用户进行测试。
- **步骤D:** 选择“Runtime settings”来进行运行时设置。在Pacing的设置中,“Number of Iterations”用于设置虚拟用户执行Actions的次数,可以根据具体测试需求进行调整。
通过以上步骤,可以使用LoadRunner有效地测试BEA TUXEDO应用的性能和稳定性,确保系统能够在高负载情况下稳定运行。