51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 24396|回复: 3
打印 上一主题 下一主题

[原创] https(SSL) handshake failure解决过程

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-2-29 22:41:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初到阿里巴巴时遇到的一个技术问题,呵呵放到另外的地方太冷落了,不忍心啊。特转移到这里



碰到loadrunner https脚本回放失败,通过多次尝试,无意中找到答案,觉得过程有点意思,特与各位交流。 •1.1.      录制https脚本 采用http协议,url: https://crm.cn.alibaba-inc.com/, 默认选项。生成的脚本如后:
web_url("crm.cn.alibaba-inc.com",
             "URL=https://crm.cn.alibaba-inc.com/",
             "Resource=0",
             "RecContentType=text/html",
             "Referer=",
             "Snapshot=t1.inf",
             "Mode=HTML",
             LAST);
•1.2.      回放失败 打开extend log,把advance trace均打开,log如后:
Action.c(6): web_url("crm.cn.alibaba-inc.com" started     [MsgId: MMSG-26355]
Action.c(6): t=407ms: Connecting to host 60.190.232.107:443         [MsgId: MMSG-26000]
Action.c(6): t=426ms: Connected socket from 10.0.68.48:3764 to 60.190.232.107:443 in 13 ms  [MsgId: MMSG-26000]
Action.c(6): SSL3 alert read:fatal failure
      [MsgId: MMSG-26000]
Action.c(6): SSL_connect:error in SSLv2/v3 read server hello A
      [MsgId: MMSG-26000]
Action.c(6): Error -27778: SSL protocol error when attempting to connect with host "crm.cn.alibaba-inc.com"  [MsgId: MERR-27778]
Action.c(6): t=443ms: Closed connection to crm.cn.alibaba-inc.com:443 after completing 0 requests    [MsgId: MMSG-26000]
Action.c(6): t=445ms: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure        [MsgId: MMSG-26000]
Action.c(6): web_url("crm.cn.alibaba-inc.com" highest severity level was "ERROR", 0 body bytes, 0 header bytes     [MsgId: MMSG-26388]
•1.3.      解决过程 第一层想法:

Ø support.mercury.com,以关键词 ssl,https均未有相近结果。但肯定loadrunner支持SSL。
Ø 去51testing.com找到有类似问题,但未有解决方案。
Ø 查 function reference,并没有看到与ssl特别密切的函数,仅有web_set_sockets_option沾边。 查online book,有些关于ssl 的说明。
第二层想法:  找了一些ssl 握手过程的资料(如rfc)。了解到client/server握手过程中,内容动态变化。 经过ethereal抓包,确信loadrunner每次回放均采用旧值,导致handshake failure 。初步计划下载openssl的握手源代码,包装成dll并集成到loadrunner。
考虑到代价高昂,再google  ssl+loadrunner 。随手看到 http://www.wilsonmar.com/1loadrun.htm:If an Web SSL script works in the Controller but not vuGen, try changing the controller's Runtime Settings Preferences to "WININET replay instead of Sockets".  不类似,但一尝试,问题解决!
•1.4.      解决方法 在vugen 内, run-time settings->preferences->勾上WININET replay instead of Sockets。
•1.5.      原理
vugen  user's  guide 提到 Advanced Web run-time options

WinInet Replay (instead of Sockets): Instructs VuGen to use the WinInet

replay engine. VuGen has two HTTP replay engines: Sockets-based (default)

or WinInet based. The WinInet is the engine used by Internet Explorer and

it supports all of the features incorporated into the IE browser. The

limitations of the WinInet replay engine are that it is not scalable, nor does

it support UNIX. In addition, when working with threads, the WinInet

engine does not accurately emulate the modem speed and number of

connections.

VuGen's proprietary sockets-based replay is a lighter engine that is scalable

for load testing. It is also accurate when working with threads. The

limitation of the sockets-based engine is that it does not support SOCKS

proxy. If you are recording in that type of environment, use the WinInet

replay engine.

从上可知,winInet replay 支持集成如IE的所有特征。回放时,底层的winInet函数完成SSL握手过程。同时每种mode均有优劣。

另外,找到一些说明:

Any Web script can be replayed in LoadRunner in two modes:

1. WinInet Mode - Using the WinInet.dll provided by Internet Explorer.
2. Socket mode - Using the Sockets Replay engine developed by Mercury.

•1.6.      启示
Ø 有必要再review 一次loadrunner的文档。Loadrunner还是一个"黑匣子",有很多的技术细节不为人知!
Ø 关注每一个选项,尤其平常少用的。也许就是一个不起眼的选项,节省无数的时间
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情

    2016-12-30 10:59
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]测试排长

    2#
    发表于 2008-3-1 10:35:34 | 只看该作者
    支持原创,呵呵
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2008-3-3 14:51:33 | 只看该作者
    呵呵,写的非常好。
    关于这个选项,也曾在其它文章看到几次,也是关于一些回放错误,选择这个选项后问题得以解决。但具体掌握仍不够深入,仅是一知半解。
    LR确实还有很多不为人知的技术,只有在遇到问题时才四处寻找方法,并且由于我们掌握不够深入,很多时候都觉得无从下手。继续努力,勇攀高峰
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2008-3-3 16:32:29 | 只看该作者
    SSL  的加密方法有几种?为什么HP的引擎不支持?没有碰到过这种情况。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-15 13:45 , Processed in 0.066547 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表