簡介
在前邊所有涉及啟動app的時候有這樣一行代碼 driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) ,很多小伙伴們和同學們不知道這個ip和端口哪里來的,我覺得有必要給小伙伴解釋一下,于是宏哥決定寫一篇關于這個appium的服務器ip文章! 來給大家答答疑,解解惑!這樣就不會問一些比較幼稚的問題,讓別人看了笑話,笑掉大牙了。eg:宏哥,宏哥,宏哥,那個我在測試服務器搭建測試環境,我是不是就只能在測試服務器上調試代碼,然后進行測試了。那這樣我還的搭建一套別寫腳本的環境。。。。等等的傻白寡的問題, Remote? 我們先給他相一相面,就知道它的意思是:遠程。那么我們是不是把那個IP地址修改成測試服務器的IP,一切問題是不是就迎刃而解了。
目的
一般來說appium中127.0.0.1這個地址的默認的不需要修改。在做自動化過程中,如果遇到需要遠程操作的話,這個功能就可以派上用場了。想想看,如果公司給你單獨配置一臺跑自動化測試電腦,然后自己工作的電腦寫腳本,在自動化機器上運行腳本,這樣工作自動化兩不誤,是不是很爽呢??
說明
127.0.0.1
127.0.0.1是環回(loopback)地址,用來測試本機的TCP/IP協議棧,比如你在cmd里輸入:ping 127.0.0.1:
看到的就是向本機發送請求包,這個請求只會在你的本地跑,不會通過網絡發送出去。
?“ 本地 ”,你一定還想到了localhost,打開你的hosts文件(右鍵選擇用notenotepad++打開):
可以看到:
是的,127.0.0.1和localhost的是“等價的”:
localhost是個域名,性質跟 “www.baidu.com” 差不多。(不能直接綁定套接字,必須先gethostbyname)轉成IP才能綁定——括號里的字我也不太明白。也就是說你的localhost默認的ip就是127.0.0.1。
現在我們就可以這樣理解了,地址寫127.0.0.1的意思就是要在本地進行訪問:
我們把地址直接寫成localhost,這樣也是可以調通的。
端口號:4723
這個值不是固定的,唯一的要求就是——不要沖突,你可以在cmd你查看目前占用的端口號,輸入命令
netstat -ano查看所有端口占用;
netstat -ano | findstr “4723” 查看4723端口號被哪個程序占用
第一個沒有查看到程序,因為宏哥沒有開啟appium
宏哥開始啟動appium第二個查看到了
設置IP?
1.打開appium>General Setting界面
訪問地址
1.代碼里面的那個地址到底指向的是哪里呢?
啟動appium服務后,在瀏覽器輸入:http://127.0.0.1:4723/wd/hub。出現如下圖所示,說明服務啟動成功,可以把appium看出是一個服務端。
1.一臺工作電腦,一臺跑自動化測試的電腦,如何用工作的電腦遠程控制自動化測試的那臺電腦呢?
2.測試電腦上的appium服務地址改成本機IP地址如:192.168.1.1( 注意注意注意!!!這里要是本機的ip地址 )
遠程操作
1.在自己工作電腦上打開瀏覽器輸入:192.168.1.1:4723/wd/hub。這一步很重要,一定要看到如下界面,確認遠程鏈接成功.
?2.腳本里面的代碼修改下地址
3.測試機上環境準備好后,在本機上運行腳本,于是測試機上可以自動運行了。?
小結
1.首先 localhost 是一個域名,在過去它指向 127.0.0.1 這個IP地址。在操作系統支持 ipv6 后,它同時還指向ipv6 的地址 [::1]
在 Windows 中,這個域名是預定義的,從 hosts 文件
(c:\windows\system32\drivers\etc\hosts)(etc/hosts)
中可以看出:
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
而在 Linux 中,其定義位于 /etc/hosts 中:
127.0.0.1 localhost
注意這個值是可修改的,比如我把它改成
192.068.206.1 localhost
然后再去 ping localhost,提示就變成了
PING localhost (192.168.206.1) 56(84) bytes of data.
當然一般人不會像我這么蛋疼。
————分割線—說完localhost再說127.0.0.1————
127.0.0.1 這個地址通常分配給 loopback 接口。loopback 是一個特殊的網絡接口(可理解成虛擬網卡),用于本機中各個應用之間的網絡交互。只要操作系統的網絡組件是正常的,loopback 就能工作。Windows 中看不到這個接口,Linux中這個接口叫 lo:
#ifconfig
eth0 Link encap:Ethernet hwaddr 00:00:00:00:00:00
inet addr :192.168.0.1 Bcase:192.168.0.255 Mask:255.255.255.0
......
lo Link encap:Local Loopback
inetaddr: 127.0.0.1 Mask: 255.0.0.0
......
可以看出 lo 接口的地址是 127.0.0.1。事實上整個 127.* 網段都算能夠使用,比如你 ping 127.0.0.2 也是通的。
但是使用127.0.0.1作為loopback接口的默認地址只是一個
慣例
,比如下面這樣:
#ifconfig lo 192.168.128.1
#ping localhost #糟糕,ping不通了
#ping 192.128.128.1 # 可以通
#ifconfig lo
lo Link encap:Local Loopback
inetaddr: 192.168.128.1 Mask: 255.255.255.0
......
當然,一般人更不會像我這樣蛋疼。如果隨便改這些配置,可能導致很多只認 127.0.0.1 的軟件掛掉。
————分割線—說完127.0.0.1再說本機地址————
確切地說,“本機地址”并不是一個規范的名詞。通常情況下,指的是“本機物理網卡所綁定的網絡協議地址”。由于目前常用網絡協議只剩下了IPV4,IPX/Apple Tak消失了,IPV6還沒普及,所以通常僅指IP地址甚至ipv4地址。一般情況下,并不會把 127.0.0.1當作本機地址——因為沒必要特別說明,大家都知道。
本機地址是與具體的網絡接口綁定的。比如以太網卡、無線網卡或者PPP/PPPoE撥號網絡的虛擬網卡,想要正常工作都要綁定一個地址,否則其他設備就不知道如何訪問它。
————最后總結一下區別————
- localhost 是個域名,不是地址,它可以被配置為任意的 IP 地址,不過通常情況下都指向 127.0.0.1(ipv4)和 [::1](ipv6)
- 整個127.* 網段通常被用作 loopback 網絡接口的默認地址,按慣例通常設置為 127.0.0.1。這個地址在其他計算機上不能訪問,就算你想訪問,訪問的也是自己,因為每臺帶有TCP/IP協議棧的設備基本上都有 localhost/127.0.0.1。
- 本機地址通常指的是綁定在物理或虛擬網絡接口上的IP地址,可供其他設備訪問到。
- 最后,從開發度來看
- localhost是個域名,性質跟 “www.baidu.com” 差不多。不能直接綁定套接字,必須先gethostbyname轉成IP才能綁定。
- 127.0.0.1 是綁定在 loopback 接口上的地址,如果服務端套接字綁定在它上面,你的客戶端程序就只能在本機訪問。
- 如果主機中存在多個網卡,分別連接不同的物理網絡,比如 192.168.0.1/255.255.255.0 和 192.168.1.1/255.255.255.0,那么當你的服務端套接字綁到 192.168.0.1 這個地址上時,位于 192.168.1.* 網段的其他計算機是無法連接的,只有位于192.168.0.* 網段的計算機才能訪問你的服務端程序。
2.好了,今天就分享到這里,想必各位小伙伴和童鞋們對這一行代碼衍生出來的問題都有了一個新的認識。
?
?
您的肯定就是我進步的動力。 如果你感覺還不錯,就請鼓勵一下吧!記得點波? 推薦 ?哦!!!(點擊右邊的小球即可! ( ^__^ ) 嘻嘻……)
?
? ? ? ?個人公眾號? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 微信群 ?(微信群已滿100,可以加宏哥的微信拉你進群,請備注:進群)? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
