当前位置: 首页 > 测试知识 > 软件测试工具LoadRunner中如何对密码和文本进行编码
软件测试工具LoadRunner中如何对密码和文本进行编码
2026-01-06 作者cwb 浏览次数21

LoadRunner对密码和文本进行编码主要出于两个目的:防止敏感信息在脚本中明文暴露,以及保证数据(特别是中文等非ASCII字符)在传输时编码正确。


LoadRunner编码处理方法:


1. 内置敏感信息屏蔽:防止密码等敏感数据在脚本中明文存储。Password Encoder 工具、lr_unmask()、lr_decrypt(),可逆编码,非高强度加密,主要用于防窥视。

2. 字符编码转换:解决因字符集不一致导致的中文等文本乱码问题。lr_convert_string_encoding(),不涉及加密,是功能性的编码转换。

3. 调用外部加密库:实现MD5、SHA、Base64、SM4等特定加密算法。lr_load_dll() (调用C DLL),或 web_js_run() (调用JS库),真正意义上的加密,安全性取决于所用算法,强度高。


使用内置工具进行敏感信息屏蔽

这是LoadRunner最直接的功能,用于在脚本中隐藏密码、ID等明文。


1. 使用Password Encoder工具

途径:一般在 开始菜单 > Micro Focus (或 HPE) > LoadRunner > Tools > Password Encoder。

步骤:输入明文密码 -> 点击 Generate -> 复制生成的编码字符串 -> 在脚本中粘贴到 lr_unmask("编码字符串") 函数里使用。

注意:该工具在某些系统(如Win7 64位)上可能需要官方补丁才能使用。


2. 在VuGen脚本视图中直接屏蔽文本

步骤:在Script View中选中要屏蔽的文本(不含引号)-> 右键选择 Encrypt string 或 Mask String -> VuGen会自动将其替换为 lr_decrypt("编码字符串") 或 lr_unmask("编码字符串") 格式。

还原:右键点击编码后的字符串,选择 Restore encrypted string 即可恢复明文。


提示:

以上两种方法生成的字符串是可逆的,主要目的是防止脚本被轻易窥视,并不是高强度的安全加密。任何拥有相同LoadRunner环境的人都可以通过反向操作或函数调用解码出原文。如果安全要求极高,应采用下文提到的调用外部加密库的方法。

使用函数进行字符编码转换

当被测系统涉及中文等多字节字符,且出现请求或响应乱码时,需要使用此功能进行编码转换。

重要函数:lr_convert_string_encoding(源字符串, 源编码, 目标编码, "参数名")

情形:将本地字符串(如GBK)转换为UTF-8以适应Web应用。


c

lr_convert_string_encoding("测试数据", LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8, "str_utf8");

// 转换后,使用 lr_eval_string("{str_utf8}") 获取转换后的字符串内容


技巧:该函数转换后的字符串参数可能包含结束符 \x00,直接作为字符串使用可能导致意外截断。使用 lr_eval_string 将其取出并保存一次:


c

char temp[512];

strcpy(temp, lr_eval_string("{str_utf8}")); // 取出并去除潜在结束符

lr_save_string(temp, "str_for_use"); // 保存为干净可用的新参数

// 之后使用 {str_for_use}


调用外部库实现高强度加密

当需要对接使用MD5、SHA、Base64、SM4等算法加密的接口时,必须扩展LoadRunner的能力。


1. 调用C语言编写的DLL

步骤:将实现加密算法的C代码编译成DLL -> 在脚本中用 lr_load_dll("xxx.dll") 加载 -> 直接调用DLL中的函数。

示例:此方法可用于实现Base64编码。


2. 调用JavaScript加密库(适用于Web/HTTP协议)

情形:现代Web应用的前端常使用JS进行加密(如SM4、AES)。

步骤:

在VuGen的 运行时设置(Run-time Settings) > Internet协议 > 第一选择项 中,启用“运行JavaScript代码”。

将外部JS加密库文件(如sm4.js)导入到VuGen的 解决方案(Solution) > 额外文件(Extra Files) 中。

使用 web_js_run 函数调用JS中的加密方法,并可通过LR.getParam、LR.setParam等TruClient函数和LR脚本交互数据。


总结建议

仅防脚本明文泄露:使用内置的Password Encoder或右键屏蔽功能。

解决中文乱码问题:使用 lr_convert_string_encoding 函数,并注意处理结束符。

对接加密接口:调用外部DLL或JS库,这是唯一安全可靠的加密方式。

版本和兼容性:不同LoadRunner版本(如较新的改用lr_unmask)和操作系统可能影响功能,请以实际环境为准。


文章标签: 软件测试 测试工具
咨询软件测试