日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/3/24 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 模拟微信接口时,提示“请在微信客户端打开链接” 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景描述


相信有模擬微信頁面請求的測試都有看到過這個頁面,簡單點說就是爬蟲爬微信頁面,進行回放的時候會出現這個頁面。大概在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/ai594ai/p/7886264.html

總結

以上是生活随笔為你收集整理的模拟微信接口时,提示“请在微信客户端打开链接”的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。