在防火墙环境下进行LoadRunner性能测试确实会复杂一些,但只要掌握了正确的配置方法,完全可以有效开展。
理解通信原理和端口配置
在防火墙环境下,LoadRunner的Controller和负载生成器(Load Generator)之间的直接通信会被防火墙阻断。为了解决这个问题,LoadRunner采用了一种通过MI监听器(MI Listener)进行中继通信的机制。
需要确保:
出站规则:允许防火墙内的LoadRunner代理计算机通过端口443(HTTPS) 向外的连接。
入站规则:允许防火墙外的MI监听器计算机通过端口50500 (TCP) 的传入连接。
在LoadRunner 12.00及更高版本中,你还可以通过网络连接配置文件更灵活地配置这些端口和代理服务器设置。
主要配置步骤
在防火墙上开放了必要的端口后,需要分别在负载生成器(代理)和Controller端进行配置。
配置负载生成器(代理端)
在负载生成器计算机上,确保已安装LoadRunner代理程序。你可以通过检查“开始”菜单中是否存在“Mercury LoadRunner” -> “LoadRunner代理服务/进程”来确认。
运行 代理配置工具 (Agent Configuration)。可以通过“开始”菜单 -> “程序” -> “Mercury LoadRunner” -> “高级设置” -> “代理配置”找到,或者直接运行LoadRunner安装目录下的...\launch_service\bin\AgentConfig.exe。
在配置工具中,启用“防火墙代理” 并进行具体设置:
MI监听器名:填写MI监听器计算机的IP地址或主机名。
本地计算机密钥:设置一个唯一的字符串标识符,用于建立安全连接。
连接类型:根据环境需要选择TCP或HTTP。如果选择HTTP,还需配置代理服务器信息。
使用安全连接(SSL):建议启用此项,以通过端口443使用SSL加密通信,增强安全性。
配置Controller端
在Controller计算机上,配置MI监听器 (MI Listener)。MI监听器通常在安装Controller时已自动安装。
通过“开始”菜单 -> “程序” -> “Mercury LoadRunner” -> “高级设置” -> “MI侦听器配置” 运行配置工具。
确保MI监听器服务已启动,并监听正确的端口(例如50500)。
网络延迟监控和协议选择
在防火墙环境下进行性能测试时,监控网络延迟对于精准定位性能瓶颈很重要。
添加网络延迟监控:在Controller的"运行"视图中,你可以通过 图 > 添加新图 > 网络延迟时间图 来添加监控。之后右键点击图表,"添加度量",按向导添加源计算机(负载生成器)和目标计算机(应用服务器)的地址。
协议选择技巧:在配置网络延迟监控的路径时,如果使用TCP协议遇到问题,可以尝试将协议切换为ICMP(即Ping命令使用的协议),某些网络设备对TCP监控数据包的处理策略可能不同。
故障排查
即使按照上述步骤配置,有时也会遇到一些问题。以下是一些常见问题及解决方法:
代理无法连接MI监听器:防火墙阻止了端口443或50500的通信,复查防火墙规则,确保端口443(出站)和50500(入站)已正确开放。
防病毒软件拦截:临时关闭防病毒软件进行测试,或将LoadRunner相关程序添加到信任列表。
监控无数据:网络延迟监控协议选择不当,尝试在监控路径配置中将协议从TCP切换为ICMP。
目标服务器防火墙阻止:确保目标服务器的防火墙允许来自负载生成器的ICMP_ECHO_REQUEST(对于ICMP)或特定端口的传入连接。
连接服务器失败:权限不足,确保LoadRunner相关进程以管理员权限运行。
此外,还有一些通用的实践可以帮助你更顺利地进行测试:
基线对比:在系统性能正常时,进行一次无防火墙策略限制的测试,获取基准数据,便于后续对比分析。
充足资源:确保LoadRunner Controller和负载生成器计算机有足够的磁盘空间,因为测试会生成大量数据。
参数化设置:注意脚本中参数化数据的设置,确保参数个数足够且在配置范围内,避免因测试数据问题导致脚本失败。
在防火墙环境下使用LoadRunner进行性能测试,成功的在于保证LoadRunner各组件(Controller、MI Listener、Load Generator代理)之间用于通信的特定网络端口(如443和50500)能够在防火墙中顺畅通行。只要理解了原理并仔细完成了端口和代理的配置,你就可以有效地开展性能测试。