背景描述

相信有模拟微信页面请求的测试都有看到过这个页面,简单点说就是爬虫爬微信页面,进行回放的时候会出现这个页面。大概在1年前,专门安排了一个人去解决这个技术问题,遗憾的是当时没有找到解决方案,接下来所有微信端的接口测试和性能测试都无法进行,今天和大家分享下我们的解决方案,希望大家可以绕过微信的坑。

业务场景

我这里以JMeter来举例,我们可以通过在JMeter上开启代理,手机上设置代理来录制微信端的请求,以下为在微信端的业务对应生成的脚本:

录制完成后,我们进行回放,你会发现在查看结果树中,会重定向到微信授权,接着就开始提示:请在微信客户端打开链接。

这里补充几个录制的小技巧

1、每个组放入一个新的控制器:在手机端上做的一次操作所产生的请求会被放在一个控制器中,非常方便;
2、选中记录HTTP信息头、添加断言、Regex matching :自动添加信息头和断言;

问题分析

这里我们看一下请在微信客户端打开链接页面对应的代码:

<script type="text/javascript">var ua = navigator.userAgent.toLowerCase(); var isWeixin = ua.indexOf('micromessenger') != -1; var isAndroid = ua.indexOf('android') != -1; var isIos = (ua.indexOf('iphone') != -1) || (ua.indexOf('ipad') != -1); if (!isWeixin) { document.head.innerHTML = '<title>抱歉,出错了</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"><link rel="stylesheet" type="text/css" href="https://res.wx.qq.com/open/libs/weui/0.4.1/weui.css">'; document.body.innerHTML = '<div class="weui_msg"><div class="weui_icon_area"><i class="weui_icon_info weui_icon_msg"></i></div><div class="weui_text_area"><h4 class="weui_msg_title">请在微信客户端打开链接</h4></div></div>'; } </script> 

重点看:

var ua = navigator.userAgent.toLowerCase();
var isWeixin = ua.indexOf('micromessenger') != -1; 

说明微信的这个提示是通过判断userAgent中是否包含micromessenger确认是否从微信中打开。
好了,我们查看以下HTTP头中的userAgent:

录制的时候自动添加了录制HTTP请求头的,那么为什么在JMeter打开会仍然会提示呢?这里怀疑是微信故意留的坑或者是微信开发这个页面的人英语四级没过。

解决方案

经过和我们程序猿哥哥陈丹明陈建清一番讨论,一开始没有解决方案;此时丹明怀疑MicroMessenger这个单词写错了,应该是:micromessage!一试,果然!
好吧,程序猿你赢了,看来懂英语是多么的重要。

最终解决

在HTTP请求头里面将MicroMessenger修改成 micromessage

小结

1、请在微信客户端打开链接 这个问题困扰了我们很久,今天总算解决,完美解决;
2、感谢程序猿的大胆怀疑,给他们点赞;
3、自动化测试过程中如果碰见了技术瓶颈,不妨多和研发沟通,他们总能给你一些指导。

转载于:https://www.cnblogs.com/a00ium/p/10360477.html

模拟微信接口时,提示“请在微信客户端打开链接”(转)相关推荐

  1. 扫描二维码,提示请在指定客户端打开连接

    有时候,需要链接只能在微信上打开,如果不是,则提示请在微信客户端打开链接的字眼的网页,网页代码如下:(这个是网页应用授权时,非微信上打开,就会出现,然后把它单独拿出来了) 效果如图: 实现方法: &l ...

  2. Android使用WebView加载Url时提示“请在微信客户端打开链接”

    前言 最近在使用webView加载一个url时 提示弹出这样的图片 解决方法 在设置webView属性的时候 修改ua参数 我们通过这个链接拿到自己的ua参数 点击获取自己的UA参数 如图所示 我用的 ...

  3. 模拟微信接口时,提示“请在微信客户端打开链接”

    背景描述 相信有模拟微信页面请求的测试都有看到过这个页面,简单点说就是爬虫爬微信页面,进行回放的时候会出现这个页面.大概在1年前,专门安排了一个人去解决这个技术问题,遗憾的是当时没有找到解决方案,接下 ...

  4. Android_微信分享时提示“签名不对,请检查签名是否与开放平台上填写的一致。”

    传送门: Android_新浪微博分享提示"21338:sso package or sign error": https://blog.csdn.net/pang78755961 ...

  5. 微信公众号无法抓包 提示请在微信客户端打开链接

    最近有一个需求是测试公司公众号中某个需要鉴权接口的性能.首先就是需要对该接口进行抓包,根据以前写过的一篇文章,我们可以过使用Fiddler对微信PC客户端抓包来获取接口信息. 使用fiddler抓包微 ...

  6. 请在微信客户端打开链接:火狐浏览器模拟微信浏览器内核教程 ,用chrome模拟微信浏览器访问需要OA…....

    背景:微信浏览器能访问,出现,请在微信客户端打开链接. user agent switcher for firefox: https://addons.mozilla.org/en-US/firefo ...

  7. JS设置请在微信客户端打开链接提示页面

    判断JS: var ua = navigator.userAgent.toLowerCase(); var isWeixin = ua.indexOf('micromessenger') != -1; ...

  8. 安卓6.0以上机型微信登录时提示Activity did not call finish() prior to onResume() completing

    ** 安卓6.0以上机型微信登录时提示Activity did not call finish() prior to onResume() completing ** 今天遇到这样的一个bug,我 ...

  9. python 请在微信客户端打开_完美解决 请在微信客户端打开链接

    完美解决 请在微信客户端打开链接 背景描述 相信有模拟微信页面请求的测试都有看到过这个页面,简单点说就是爬虫爬微信页面,进行回放的时候会出现这个页面.大概在1年前,专门安排了一个人去解决这个技术问题, ...

最新文章

  1. 大数据告诉你80、90后的真实负债
  2. 成熟的男人思考的东西
  3. 使用 rsync / scp 命令下载linux文件,显示网速和进度
  4. leetcode 543. 二叉树的直径(Java版)
  5. mysql连接方式左联_数据库中的左连接(left join)和右连接(right join)区别 | 改变自己...
  6. iOS convertRect:view.frame toView: x 异常翻倍?
  7. linux下make 文件写法之简单函数调用
  8. linux对某个文件进行操作步骤,实验二 Linux系统简单文件操作命令
  9. Day.js 是一个仅 2kb 大小的轻量级 JavaScript 时间日期处理库,和 Moment.js 的 API 设计保持完全一样,dayjs...
  10. 【OR】YALMIP Bilevel规划
  11. flash游戏开发学习
  12. 基于朴素贝叶斯的新闻分类
  13. 圆的半径java_计算圆的半径
  14. WordPress模板教程
  15. 数据采集 - 获取【码市】最新发布需求,并实时通知用户 案例二
  16. log4j2配置定期清理日志文件
  17. 【实战技能】软件工程师与AI工程师的区别是什么?
  18. 查看服务器ip修改记录,如果查看服务器ip地址和修改ip
  19. EOS什么时候会归零?
  20. MATLAB2016笔记(五):进阶矩阵操作

热门文章

  1. 企业微信oauth认证_微信企业号OAuth2验证接口实例(使用SpringMVC)
  2. Qt实现多摄像头的识别、显示、截图、分辨率帧率设置等功能
  3. 手机端PDF转换器有哪些  PDF转PPT在手机上怎样操作
  4. Network Delay Simulator模拟延时、带宽甚至丢包率,更精确地模拟慢网速环境
  5. 普通pc机的轻连接到底能建多少?
  6. 使用支付宝支付出现问题:交易订单处理失败 请稍后再试 ALI38173
  7. 浅入浅出Caffeine cache
  8. 又有12款APP违规收集用户信息,下架整改
  9. WIX插件安装包的生成(三) 批量导入文件
  10. 微服务集成SkyWalking