如何在 PC 機上測試移動端的網頁?
如果用 HTML5 寫的頁面,想兼容 iOS、Android 平台的手機,在 PC 機上看有些效果可能不準確,但不可能在每個移動終端都放上去看下效果吧,一般用什麼工具呢?模擬器?有沒有更好的工具推薦?
我知道可以用 Opera 移動版,還可以用 Safari 修改 UA 成 iPad,Chrome也 中可以設置,你們都是這樣測嗎?
騰訊這邊有一款非常好的產品,可以測上線的網頁在移動設備的兼容性。
雲端有很多真機,通過網頁可以操作真實手機。
選擇一台:
進入測試:
目前這個對網速的要求比較高,高清模式的話,需要1M/s左右的網速,如果網速不夠的話,可以切換到流暢模式,流暢模式的話畫質不是很清晰,不過也能看。
這個真機的測試應該比模擬器更有優勢,而且目前幾乎就是免費試用。
http://wetest.qq.com/cloud/index.php/help/cloudindex
大騰訊就是有錢更新下答案,好像最新版的 chrome 本身已經支持 ADB 了,所以就不再需要安裝那些插件啦~~
=======================================================================================
1. Chrome To Mobile
PC機上安裝該chrome插件;在手機端安裝chrome瀏覽器,登錄chrome帳號, 啟用「Chrome 轉發至移動設備服務」; 在PC端上輸入對應要調試的網址,然後點擊發送到手機, 則會將該網址發送到手機端。免去了移動端上輸入網址困難的煩惱。
註:ios chrome 與android chrome 都支持該功能
2-1. 調試—有線
Android chrome + Wndows/Mac OS
Android SDK
(1) 安裝Android SDK
下載&>解壓&>設置PATH為/platform-tools/
(2) 手機啟用USB調試模式
設置&>開發者&>開啟USB調試模式
(3) chrome啟用USB網頁調試
設置&> 開發者工具 &> 啟用USB網頁調試
(4)用USB線連接移動設備
(5)開啟adb伺服器
命令行進入sdk/platform-tools目錄&>輸入
adb forwrad tcp: localabstract:chromedevetoolsremote
(6)訪問localhost:
註:啟動服務遇到錯誤的情況, 運行adb kill-server。 iOS Chrome不支持這種方式調試
ADB Plugin + MAC(2013-6-24更新)
今天偶然發現了這個方案, 有MAC的同學可以完全取代上面的使用SDK調試方法, 畢竟每次啟動命令行挺麻煩的. 步驟如下: (1)下載 Chrome Canary
(2)下載 ADB Plugin 並安裝在Chrome Canary上
(3) 開啟手機 "USB調試模式"
注: 若手機已經開啟過, 可以先關閉再開啟, 避免手機沒有記錄下你機器的物理地址.
(4) 開啟手機chrome USB網頁調試
(5)點擊ADB插件, 有驚喜.
iOS Safari + MAC
該方法只適用safari6.0+的版本。
(1) 手機進入偏好設置,點擊safari,開啟web檢查器;
(2) Mac下進入safari的偏好設置,顯示「開發」菜單;
(3) 手機鏈接Mac, 查看MAC Safari 「開發」菜單,會有你的ios設備名的一行選項,這下面的子菜單就是你的ios safari上打開的網頁
2-2. 調試—無線
weinre
該方案我這不介紹了,有興趣的讀者可以網上搜之。 因為我很討厭這種調試方式, 一個是要引入額外通信腳本,IP一邊,腳本地址又要變; 一個是速度慢得要死。 用過一次後, 就被我拋棄了。
MIHTool
該方法只適用於iOS系統, 具體用法就不多說了,直接點擊標題鏈接吧, 方便,強大,易上手,移動端有Iphone和Ipad的, 我推薦直接用這個工具了。因為沒有那麼多繁瑣的安裝步驟。
3. HOST綁定
(1) PC和MAC開啟代理伺服器
Fiddler
Fiddler只有windows版,所以該方法只適合windows系統。
Fiddler&>Tools&>Fiddler Options&>Connections
Nproxy
node編寫;
安裝簡單: npm install nproxy -g
使用方便: nproxy
默認運行在8989埠, 加-p選項和埠號可以設置運行的埠
適用於win和mac, 同時也具備了fiddler的文件替換功能, 具體可以點擊標題鏈接查看更詳細的功能。
註: 該工具目前暫時無法代理手機端下的https請求, 已經反饋給作者,期待修復。
(2) 手機端設置代理
進入wifi設置, 選擇手動輸入代理伺服器, 輸入PC和MAC的IP及相關埠即可。 此時,手機使用的就是你桌面機器的hosts。
PS: Android上有個設置代理的應用,叫DroidProxy, 可以幫你保存設置過的代理地址,這樣你就不用每次都再去輸入代理地址了。 iOS大家可以補充下。
我的心得和總結
我自己使用的方案如下:
Chrome To Mobile(必備了,沒什麼選擇)
調試上:
iOS設備上使用 MIHTOOL, 實在是方便。
Android機上只選擇usb調試, weinre太噁心了,太噁心了= =!
hosts綁定上:
我選擇的是nproxy, 一行命令就開啟了代理, 且資源消耗小,另一方面,擼主有MAC- -!
調試:
打開chrome 輸入網址,按F12呼出調試器,按esc就會底下再冒上來一坨,選 emulation
在Chrome里開發網頁你懂的,各種好
除了
字體是不一樣的,導致文字寬度都可能不一樣,繼續導致在手機里會掉下去什麼的
還有Retina什麼的,1px的線之類的
iOS:
然後Safari里直接能調出來調試器
這個傲嬌的公司...,在PC下推薦用 VMWare 跑個 Mavericks
這OS比較吃硬體,我用的是Alienware,之前Thinkpad W500跑的略累
Android:
然後Chrome里直接能出來調試器
官方: Android SDK | Android Developers
不過強烈推薦 Genymotion - 完爆 Android SDK 模擬器 速度賊快
===update====
基友這邊團隊開發了
微信web開發者工具
牆!裂!推!薦!
電腦里用localhost的話,用手機訪問電腦的內網ip(前提是手機和電腦在同一個區域網下)
Chrome(33)自帶的Mobile emulation(https://developers.google.com/chrome-developer-tools/docs/mobile-emulation,鏈接裡面有使用說明),測試起來就很方便了。可以精確指定屏幕尺寸,還支持觸摸、地理位置、重力感測的模擬。
Firefox27的開發者工具裡面有個「響應式設計模式」,也可以限制屏幕尺寸,不過相比Chrome弱爆了。
它們的好處是調試起來極為方便,缺點是沒有真正的安卓模擬器那麼完美。
所以我有時候還會使用Genymotion,一個Andriod虛擬機,速度快,運行極為流暢。
2015-1-29 更新:自薦一篇文章 移動端前端開發調試
--------
看了一下, @大貓 前輩的比較簡單,但是移動端不一定跟手機模擬功能效果一樣,一般需要使用實際設備做輔助測試。
目前我採用的方案:
chrome 手機模擬功能 —— 快速高效調試。
http://browsersync.io 同步測試 —— 快速看到真實移動端的效果。
大體步驟就是:
開啟 browsersync 的本地伺服器,chrome 手機模擬功能打開,電腦做 wifi,手機連入區域網並打開 browsersync 創建的本地伺服器就可以看到效果。
然後編寫代碼,保存,手機和 chrome 自動刷新看到效果,移動端出現問題,在 chrome 調整,編輯代碼,保存看效果。
browsersync 的引入,不再需要重複刷新,而且多設備同時測試直接看到效果,而且在一台設備上的操作(例如滾動)在其他設備上也同時滾動!
就是最近手殘電腦裝了個網卡驅動,一做 wifi 就掉線 T T不要相信修改ua,移動端瀏覽器遠沒有那麼簡單。支持的功能不完整,還有些特性跟桌面不一樣。例如一些觸摸特性,桌面瀏覽器表現不給力。
保險的方式就是用模擬器,xcode中的ios模擬器,還有android模擬器。
ios模擬器可以直接訪問本機localhost,很方便。android的貌似不行,要本機搭建伺服器然後用ip地址調試。
mac下有個weinre的軟體,可以在手機上用類似chrome developer tool的東西來調試結構和控制台。很方便。android的做的比較少,沒什麼經驗。開發及調試:
可以使用最新版的chrome,我這裡的是19.0.1084.56, 在開發者工具的設置里把Emulate touch events勾選上,這樣就可以用滑鼠模擬swipeleft,swiperight,tap這類事件。
MAC上使用最新版的safari,IOS設備升級到IOS6,設備用線連接到電腦,可以在safari的開發里看到設備,這裡可以使用開發者工具來真機調試。
屏幕大小可以自己寫一個小的測試頁面,用一個iframe載入你的頁面,設置iframe的寬高,用這樣的方式在PC上模擬設備的寬高
類似這樣
http://www.testiphone.com/
http://iphone4simulator.com/
Android設備上的chrome是支持遠程調試,具體開啟方法Google一下吧
這裡有一個非常有用的書籤,包含各種小工具
http://stevesouders.com/mobileperf/mobileperfbkm.php
遠程打log可以試試這個
http://jsconsole.com/ 我用的時候非常不爽,很慢
真機測試:
主要就是代理的使用了
windows可以用fiddler作代理
mac下可以用Charles
如果你跟我一樣不用windows又不花錢買Charles可以用nginx作代理
在開發機上設置代理,比如nginx的可以這樣配置,同時配置一個獨立域名http://touch.renren.com到開發機,保證開發機和調試設備在同一個區域網內。
server {
resolver 8.8.8.8;
resolver_timeout 1s;
listen 8888;
location / {
if ($host ~* http://touch.renren.com) {
proxy_pass http://127.0.0.1;
}
if ($host !~* http://touch.renren.com) {
proxy_pass $scheme://$host$request_uri;
}
proxy_set_header Host $http_host;
proxy_buffers 256 8k;
proxy_max_temp_file_size 0;
proxy_connect_timeout 30;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;
}
}
這個問題太老了,我來為說chrome的答案po一個新圖吧。
UC瀏覽器開發者版
看來我要獻出在知乎寶貴的第一答了。
在答之前,我想先講一個故事。
我有個哥們在北上廣某知名互聯網公司做H5的前端開發,快30了,都沒談過女朋友。每次跟他出來吃飯喝酒,就聽丫逼逼叨叨說著他們項目組的一個妹子,看那表情是真喜歡啊!但他沒勇氣表白,我們再攛掇都沒用。
上個月他們發一個小版本,忙到深夜差不多了,大家都走了,就剩他跟妹子兩個人。他把代碼又翻來複去的改改改,然後發給了妹子。
沒幾分鐘,妹子跑過來跟他說,快幫我看看,為什麼測出來的性能數據全是520?
現在他倆在一起了!在一起了!
上面這個截圖,是妹子用騰訊優測測出來的H5頁面核心性能指標,這哥們改了好幾個晚上,終於化文字為數字,勇敢的表白了!
騰訊優測主打的是真機測試,上面這些性能數據全都是在多台主流真機上跑出來的,所以會有最大值最小值,方便對比分析。並且還會在這些真機上做兼容適配,直接把頁面在手機屏幕上的展示效果截圖出來給你看。重要的是,輸入URL就能測,10分鐘內出結果!
最後,我真不是來打廣告的。想體驗的點這裡吧http://utest.qq.com/h5/test/index?utm_source=Zhihuutm_medium=ExternalLinkutm_campaign=NovH5Zhihuutest_channel=327
360 火狐 谷歌自帶開發者工具,google推出的resizer等
附resizer 非官方中文版 http://resizer.cn1. 桌面瀏覽器窗口寬度改變可以一定程度幫助測試響應式開發。代碼盡量兼容桌面的會更加方便些。
2. iOS和Android的調試。
Android下通過電腦上的Chrome來遠程審查模擬器或者設備的元素。最方便的情況是usb連接設備,然後從chrome選擇Inspect Devices。Remote Inspector好像還可以配置,ADB可以橋接電腦和手機/模擬器的通訊。具體Google。
iOS下通過Safari遠程審查模擬器內的瀏覽器的元素。如下面幾個圖:
圖1 Safari打開開發菜單
圖2 菜單裡面能看到模擬器裡面正在查看的網頁。
圖3 帥
還可以上傳代碼包到新浪SAE(或者自己的空間),然後周圍人各種手機各種測。。嗯 還比較準確。。
說個調試微信網頁的吧:用QQ瀏覽器的微信調試工具插件查看手機端微信網頁的頁面元素,詳細方法:
如何在電腦端調試微信網頁
親測可用,只是略有卡頓
TestBird雲手機平台的遠程調試火得不要不要的。
為手游/APP開發者提供24小時遠程android真機調試服務,全真機遠程安裝,運行和調試程序;豐富adb日誌,截圖和視頻,實時定位問題;全面支持開發環境,可用IDE進行單步調試。
上傳安裝包就可以開始了
1.為了節省手機租用時間,系統提供了預上傳安裝包的入口:
在上傳安裝包窗口可以通過點擊或者拖拽的方式上傳安裝包。
2.選擇需要租用的終端
3.選擇租用時間
進入雲手機遠程調試
1.進行遠程鏈接
a.在終端控制頁面找到遠程連接地址及步驟提示
b.在命令行中輸入adb連接地址,發起連接
c.通過「adb devices」命令可以查看到連接成功的雲手機
2.Android Studio調試
a.在代碼中設置斷點
b.打開 Android Studio,工具欄選擇 Run —&> Debug,選中已連接的雲手機
c.程序啟動,可以看到程序命中斷點,即可開始調試
3.Eclipse調試
a.打開Eclipse,在代碼中設置斷點
b.工具欄中選擇 Run —&> Debug,在調試設備中選中已連接的雲手機
c如果出現手機提示是否安裝APK,請點擊安裝
d.運行程序,可以看到程序命中斷點,即可開始調試
接下來就不用多說了。。。
http://emulator.mobilewebsitesubmit.com/screenResolution.php?url=http://zhihu.com
打開chrome 輸入網址,按F12呼出調試器,按esc就會底下再冒上來一坨,選 emulation
在Chrome里開發網頁你懂的,各種好
除了
字體是不一樣的,導致文字寬度都可能不一樣,繼續導致在手機里會掉下去什麼的。還有Retina什麼的,1px的線之類的!
我是把chrome縮放到320px做的,全部做完後在手機把每個頁面跑一遍,有問題再改
最好的方法就是拿你自己,同事或者朋友的手機測試,這是我認為最靠譜的方法。
手機千差萬別,解析度也千奇百怪。用不同的系統測試不同的網頁即可。
推薦閱讀:
※你寫過的最晦澀的一個 Selector 是什麼?
※關於前端開發技術有哪些值得推薦的書籍?
※Html以後能幹什麼,待遇如何?
※有哪些 Bootstrap 的學習案例?
※CSS 有哪些暖心卻鮮為人知的屬性?