文档中心 压测大师 操作指南 如何进行微信网页授权相关页面压测

如何进行微信网页授权相关页面压测

最近更新时间:2019-08-23 17:45:17

微信网页授权压测介绍

使用压测工具对进行微信登录相关产品压测,必不可少的第一步是网页授权,直接使用压测客户端访问微信授权提供的接口,由于微信做了客户端验证,无法进行网页授权。

为了能够实现微信网页鉴权相关产品的压测,我们基于微信开放平台提供的 API 接口,实现了一套模拟微信的网页鉴权的 https_mocksvr 服务器。用户只需完成如下2个操作即可:

被测服务器的 Host 信息设置

为了能够让网页鉴权过程中访问微信的 API,改成访问 wetest 的 mocksvr 服务器,只需要用户在自己的被测服务器上做下 Host 信息修改,从而能够让 DNS 域名解析时解析到 WeTest 的 mocksvr 服务器上,具体修改如下:

Linux 服务器上,打开 /etc/hosts 文件,追加两行记录:
111.231.37.144 open.weixin.qq.com
111.231.37.144 api.weixin.qq.com

同样,如是 Windows 服务器,打开 C:\Windows\System32\drivers\etc\hosts 文件,将上面两行配置信息加进去即可。

测试用例配置

  1. 进入压测大师控制台,选择一个已有的项目进入,如没有项目可以新建项目。
  2. 创建一个新的微信广告 URL 测试。
  3. 填写测试用例信息:
    根据微信广告提供的 压测测试 要求,在进行一跳测试时,人数设置为如下:
    注意:

    当配置人数大于 400 时,为防范非法攻击等现象,需要对被测域名进行认证,点击域名认证按照提示认证即可。

    二跳测试时,人数设置为:

    客户端请求设置如下:
    注意:

    由于我们是模拟移动端发起测试,客户端请求中,我们要设置一个 User-Agent 的 header,值为 Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B176 MicroMessenger/4.3.2

  4. 单击【保存】,完成测试用例编写。

常见错误

按照上述方式配置完成,发起压测以后,App 服务器后台可能会报这个错误(以 Java 为例):

java.lang.RuntimeException: javax.net 
.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

原因是由于我们的微信 https_mocksvr 服务器的证书是自己本地生成的,没有经过 CA 官方认证。出现以上错误,需要 App 服务器后台关闭证书认证,或者设置为信任所有证书,主要设置方法如下:

//该部分必须在获取connection前调用
       trustAllHttpsCertificates();
       HostnameVerifier hv = new HostnameVerifier() {
          public boolean verify(String urlHostName, SSLSession session) {
             logger.info("Warning: URL Host: " + urlHostName + " vs. " +session.getPeerHost());
             return true;
           }
        };
         HttpsURLConnection.setDefaultHostnameVerifier(hv);

以上是使用 Java 原生 HttpUrlConnection 类的设置方法,如使用了第三方 Java 工具类,可网上查看具体该第三方工具类的设置方法。