h5页面 请在微信客户端打开链接_模拟微信接口时,提示“请在微信客户端打开链接”(转)…[通俗易懂]

h5页面 请在微信客户端打开链接_模拟微信接口时,提示“请在微信客户端打开链接”(转)…[通俗易懂]背景描述相信有模拟微信页面请求的测试都有看到过这个页面,简单点说就是爬虫爬微信页面,进行回放的时候会出现这个页面。大概在1年前,专门安排了一个人去解决这个技术问题,遗憾的是当时没有找到解决方案,接下来所有微信端的接口测试和性能测试都无法进行,今天和大家分享下我们的解决方案,希望大家可以绕过微信的坑。业务场景我这里以JMeter来举例,我们可以通过在JMeter上开启代理,手机上设置代理来录制微信端…

大家好,又见面了,我是你们的朋友全栈君。

背景描述

h5页面 请在微信客户端打开链接_模拟微信接口时,提示“请在微信客户端打开链接”(转)...[通俗易懂]

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

业务场景

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

h5页面 请在微信客户端打开链接_模拟微信接口时,提示“请在微信客户端打开链接”(转)...[通俗易懂]

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

h5页面 请在微信客户端打开链接_模拟微信接口时,提示“请在微信客户端打开链接”(转)...[通俗易懂]

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

h5页面 请在微信客户端打开链接_模拟微信接口时,提示“请在微信客户端打开链接”(转)...[通俗易懂]

1、每个组放入一个新的控制器:在手机端上做的一次操作所产生的请求会被放在一个控制器中,非常方便;

2、选中记录HTTP信息头、添加断言、Regex matching :自动添加信息头和断言;

问题分析

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

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 = ‘

抱歉,出错了’;

document.body.innerHTML = ‘

请在微信客户端打开链接

‘;

}

重点看:

var ua = navigator.userAgent.toLowerCase();

var isWeixin = ua.indexOf(‘micromessenger’) != -1;

说明微信的这个提示是通过判断userAgent中是否包含micromessenger确认是否从微信中打开。

好了,我们查看以下HTTP头中的userAgent:

h5页面 请在微信客户端打开链接_模拟微信接口时,提示“请在微信客户端打开链接”(转)...[通俗易懂]

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

解决方案

经过和我们程序猿哥哥陈丹明和陈建清一番讨论,一开始没有解决方案;此时丹明怀疑MicroMessenger这个单词写错了,应该是:micromessage!一试,果然!

好吧,程序猿你赢了,看来懂英语是多么的重要。

最终解决

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

h5页面 请在微信客户端打开链接_模拟微信接口时,提示“请在微信客户端打开链接”(转)...[通俗易懂]

小结

1、请在微信客户端打开链接 这个问题困扰了我们很久,今天总算解决,完美解决;

2、感谢程序猿的大胆怀疑,给他们点赞;

3、自动化测试过程中如果碰见了技术瓶颈,不妨多和研发沟通,他们总能给你一些指导。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133941.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月7日 下午5:46
下一篇 2022年6月7日 下午6:00


相关推荐

  • 趣味编程游戏_全脑开发训练100个游戏

    趣味编程游戏_全脑开发训练100个游戏在信息技术迅猛发展的时代,操纵计算机,与电脑对话的能力已经成了事实上的技能标配,也已经深深地融入了我们每个人的生活当中。游戏行业也不例外,近几年,随着全民编程的热潮,许多游戏厂商也纷纷把编程融入自己的游戏当中,甚至推出了许多专门为编程爱好者/编程学习者制作的编程解密游戏。今天要推荐的九个游戏,可谓风格各异,老少咸宜,不论你是对编程完全陌生的新手,还是硬核老鸟,一定能找到一款适合你的游戏。话…

    2022年4月19日
    99
  • 关于开启curl扩展问题若干

    关于开启curl扩展问题若干笔者在尝试了很多次开启 curl 扩展无效后终获成功 在此就将走过的弯路罗列至此 以免需要的朋友再入歧途 正确的开启方法如下 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 1 打开 php ini 文件 去掉 extension php curl dll 前的 确保 php 扩展文件下有 php curl dll 文件 如果此时开启无效的话 则执行第二步 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 2 将 php 目录下 libe

    2026年3月26日
    2
  • idea2021.3激活吗 30 天破解方法

    idea2021.3激活吗 30 天破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    148
  • 手机上有哪些不错的c语言编程软件?[通俗易懂]

    手机上有哪些不错的c语言编程软件?[通俗易懂]手机上编程C语言的软件其实非常多,下面我介绍2个不错的软件,分别是C语言编译器和C++编译器,这2个软件都可以在手机上直接编译运行C语言程序,而且使用起来非常不错,下面我简单介绍一下这2个软件的安装和使用:C语言编译器1.首先,下载安装C语言编译器,这个可以直接到手机应用商店中搜索,如下,大概也就13兆左右:2.安装完成后,打卡这个软件,就可以直接新建C语言文件,进…

    2025年9月6日
    6
  • 详解contextConfigLocation

    详解contextConfigLocationspring的应用初始化流程一直没有搞明白,刚刚又碰到了相关的问题。决定得好好看看这个流程。我们在开发spring的项目当中基本上都会在web.xml通过:来初始化各个spring的配置文件,但是我们只是知道这段代码的功能,并不是很清楚我们配置了这段代码之后为什么就能去初始化配置文件。当然我们还会加上:listener>          li

    2022年7月12日
    23
  • 如何使用robots.txt及其详解

    如何使用robots.txt及其详解在国内,网站管理者似乎对robots.txt并没有引起多大重视,应一些朋友之请求,今天想通过这篇文章来简单谈一下robots.txt的写作。robots.txt基本介绍robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被robots访问的部分,或者指定搜索引擎只收录指定的内容。当一个搜索机器人(有的叫搜索蜘蛛)访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,…

    2022年6月11日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号