文档中心
LoadRunner楂樼骇HTTPS璇佷功閰嶇疆鎸囧崡浠庨浂鍒扮簿閫氱殑瀹炴垬鏁欑▼
时间 : 2025-09-27 16:24:42浏览量 : 2
HTTPS测试的重要性与挑战

在当今互联网环境中,HTTPS已经成为网站安全的标准配置。作为性能测试工程师,我们在使用LoadRunner进行压力测试时,经常会遇到HTTPS网站的测试需求。与普通HTTP测试不同,HTTPS涉及到复杂的证书验证机制,这就好比你要进入一个高端会所,不仅需要出示会员卡(证书),还要通过门禁系统的严格验证。
想象一下这样的场景:你正准备对一个银行系统进行性能测试,录制脚本时一切正常,但回放时却频频报错"SSL握手失败"。这正是因为LoadRunner没有正确处理HTTPS证书导致的常见问题。本文将带你深入理解LoadRunner处理HTTPS证书的高级技巧。
HTTPS基础知识回顾
在深入LoadRunner配置前,我们需要简单了解HTTPS的工作原理。HTTPS = HTTP + SSL/TLS,它通过加密和身份验证机制保障数据传输安全。这个过程主要涉及三种证书:
1. 根证书:就像公安局颁发的印章制作许可证
2. 中间证书:相当于刻章公司的资质证明
3. 服务器证书:具体到某个网站的"身份证"
当LoadRunner作为客户端访问HTTPS服务器时,会经历完整的SSL/TLS握手过程:
```
1. 客户端Hello → 2. 服务器Hello+证书 → 3. 客户端验证证书 → 4. 密钥交换 → 5. 加密通信
LoadRunner处理HTTPS的三种模式
1. 忽略证书错误(不推荐)
这相当于告诉门卫:"别检查我的证件了,直接让我进去"。虽然简单粗暴能解决问题,但完全失去了HTTPS测试的意义。
VuGen中配置方法:
```c
web_set_option("SSL_VERSION", "TLS", lr_eval_string("{SSL_VERSION}"));
web_set_option("IGNORE_CERT_ERRORS", "1", lr_eval_string("{IGNORE_CERT_ERRORS}"));
2. 导入服务器证书(推荐基础做法)
这就像是把会所的会员卡复印件带在身上,遇到检查时就出示。具体步骤:
1. 用浏览器访问目标网站,点击地址栏锁图标→"证书"
2. 导出服务器证书(通常为.PEM或.CER格式)
3. 在VuGen中:Tools→Recording Options→Network→Port Mapping→Capture Level选择"Sockets + WinINet"
4. Import Certificate导入刚才保存的证书
3. 双向SSL认证(高级安全场景)
某些金融系统要求客户端也必须提供证书,就像不仅会所要查你的证件,你还得确认门卫是不是真的工作人员。这种双向认证需要:
1. 从服务器管理员处获取客户端PKCS12文件(.pfx)及密码
2. VuGen中配置:
web_set_certificate_ex("CertFilePath=client.pfx",
"CertFormat=PFX",
"Password=123456",
"CertIndex=1",
LAST);
LoadRunner高级HTTPS调试技巧
SSL/TLS协议版本控制
不同服务器支持的SSL/TLS版本可能不同。比如某***网站只支持TLS1.0(虽然不安全但现实中确实存在),而默认情况下LoadRunner可能使用更高版本导致连接失败。
解决方案:
// TLS1.0
web_set_option("SSL_VERSION", "TLS1", "");
// TLS1.2
web_set_option("SSL_VERSION", "TLS12", "");
SNI扩展支持
现代云服务常使用基于SNI(Server Name Indication)的虚拟主机技术。就像同一栋大楼里有多个公司共享同一个前台。
启用SNI支持:
web_set_sockets_option("SSL_SNI", "www.example.com");
OCSP装订问题处理
OCSP装订是检查证书是否被吊销的机制。有时内网环境无法访问OCSP服务器会导致握手失败。
禁用OCSP检查:
web_set_option("OCSP_ENABLE", "0", "");
LoadRunner Controller中的HTTPS配置
在单机脚本调试成功后,分布式压测时还需注意:
1. 确保所有负载生成器都有相同CA证书
- Windows机器:将CA证书记入"受信任的根证书颁发机构"
- Linux负载机:更新/etc/ssl/certs/
2. 处理多域名通配符证书
```c
web_set_sockets_option("SSL_HOST_FLAGS",
"Domain=*.example.com,AcceptWildcards=YES");
```
3. 监控指标特别关注
- SSL Handshake Time
- Failed SSL Connections
- Certificate Expiry Warning (通过额外脚本实现)
HTTPS性能优化建议
1. 会话复用提升性能
web_set_sockets_option("SSL_SESSION_CACHE_SIZE", "10");
2.减少完整握手次数
确保勾选Recording Options中的"Enable HTTP/2"(如果服务器支持)
3.选择合适的加密套件
通过注册表调整优先级(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL)
LoadRunner与其他工具的配合使用
复杂场景下可能需要借助其他工具:
- OpenSSL诊断:`openssl s_client -connect example.com:443 -showcerts`
- Fiddler/Wireshark抓包分析:特别关注ClientHello和ServerHello内容
- Postman辅助调试:先确保接口在Postman能通再移植到LoadRunner
HTTPS测试最佳实践
根据笔者多年经验出以下Checklist:
? [ ]明确被测系统的TLS/SSL版本要求
? [ ]确认是否需要双向认证
? [ ]收集所有相关证书(服务端/中间/根CA)
? [ ]检查负载机的系统时间是否正确(影响有效期验证)
? [ ]准备备用方案应对可能的HSTS策略
? [ ]制定详细的失败回退方案
记住一个原则:"先让脚本能跑通单个用户迭代,再考虑大规模并发"。很多团队花了大量时间配置负载均衡器的压力测试参数结果发现根本问题是基础的单用户脚本都没调通。
希望这篇指南能帮助你攻克LoadRunner HTTPS测试的各种难题!在实际工作中遇到的具体问题欢迎留言讨论交流经验心得。
TAG:loadrunner高级https证书,钉钉此页面因为ssl证书异常怎么办,手机钉钉ssl证书异常,钉钉此页面因为ssl证书异常怎么解决