loadrunner运行报错:vuser_init.c(14): 错误 -27796: 连接服务器“127.0.0.1:1080”失败: “[10061]

Failed to connect to server "127.0.0.1:1080"


超低级错误。场景执行LR自带的demo_script(Web Tours航班机票购买案例),总是报错 服务连接不上。

vuser_init.c(13): Error -27796: Failed to connect to server "127.0.0.1:1080": [10061] Connection refused 



折腾了半天,终于反应过来:samples中的web服务没起。。。(哈哈,运行之前记得启动web服务)

非常抱歉,`lr_hash` 并不是 LoadRunner 的标准函数,LoadRunner 并不直接支持哈希表结构。上述建议是基于理想状态下的优化思路,但在实际 LoadRunner 环境中(使用 C 脚本),确实无法使用 `lr_hash`,所以出现了 `Unresolved symbol: lr_hash` 错误--- ### ✅ 正确优化方案(适用于 LoadRunner C 脚本) 为了提高效率,我们可以采用以下方式优化原始代码: #### ✅ 1. **将角色列表和数量提取为全局变量** 避免每次执行函数时重复初始化数组。 #### ✅ 2. **使用二分查找代替线性查找** 前提:将角色数组排序,然后使用 `bsearch` 函数进行查找,时间复杂度从 O(n) 降低到 O(log n)--- ### ✅ 优化后的代码如下: ```c // 全局变量定义 char *roles_global[] = { "ACT Education Corp.", "ATLAS营销云", "APEC", "Aloudata", "Escap", "FIFA", "FBeauty未来迹", "Google", "IBM", "ITU", // ...(此处省略部分数据,保持原数组不变) "仲量联行", "佐思汽研" }; int numRoles_global = sizeof(roles_global) / sizeof(roles_global[0]); // 比较函数,用于 bsearch int compare_strings(const void *a, const void *b) { return strcmp(*(char **)a, *(char **)b); } // 排序角色列表(在 vuser_init 中执行一次) vuser_init() { qsort(roles_global, numRoles_global, sizeof(char *), compare_strings); return 0; } // 优化后的 Action 函数 Action_opt(char userRole[50]) { char *key = userRole; char **result; result = (char **)bsearch(&key, roles_global, numRoles_global, sizeof(char *), compare_strings); if (result != NULL) { lr_output_message("orgName is in the list"); return 1; } else { lr_output_message("orgName is not in the list"); return 0; } } ``` --- ### ✅ 优化说明: | 优化点 | 说明 | |--------|------| | 全局变量 | 避免每次调用函数重复初始化角色数组 | | 快速排序 + 二分查找 | 使用 `qsort` 和 `bsearch`,将查找复杂度从 O(n) 降低到 O(log n) | | 减少 CPU 消耗 | 减少重复的字符串比较操作 | --- ### ✅ 示例说明: - 原始线性查找:假设角色有 500 个,最坏情况需要比较 500 次。 - 优化后二分查找:最多只需要比较 `log2(500) ≈ 9` 次。 --- ### ✅ 性能提升效果: - **效率提升明显**:尤其在角色数量多时,性能提升显著。 - **内存占用低**:没有引入额外结构,适合 LoadRunner 脚本运行环境。 --- ### ✅ 注意事项: - `bsearch` 要求数组必须**已经排序**,因此在 `vuser_init()` 中执行一次排序即可。 - 字符串指针数组 `char *roles_global[]` 更节省内存,也方便排序和查找。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值