Appium+python自動化(三十三)- 本地調試測試代碼,遠程控制測試環境-Remote(超詳解)

簡介

  在前邊全部涉及啓動app的時候有這樣一行代碼driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps),不少小夥伴們和同窗們不知道這個ip和端口哪裏來的,我以爲有必要給小夥伴解釋一下,因而宏哥決定寫一篇關於這個appium的服務器ip文章! 來給你們答答疑,解解惑!這樣就不會問一些比較幼稚的問題,讓別人看了笑話,笑掉大牙了。eg:宏哥,宏哥,宏哥,那個我在測試服務器搭建測試環境,我是否是就只能在測試服務器上調試代碼,而後進行測試了。那這樣我還的搭建一套別寫腳本的環境。。。。等等的傻白寡的問題,Remote 咱們先給他相一相面,就知道它的意思是:遠程。那麼咱們是否是把那個IP地址修改爲測試服務器的IP,一切問題是否是就迎刃而解了。html

目的

  通常來講appium中127.0.0.1這個地址的默認的不須要修改。在作自動化過程當中,若是遇到須要遠程操做的話,這個功能就能夠派上用場了。想一想看,若是公司給你單獨配置一臺跑自動化測試電腦,而後本身工做的電腦寫腳本,在自動化機器上運行腳本,這樣工做自動化兩不誤,是否是很爽呢? web

說明

127.0.0.1

127.0.0.1是環回(loopback)地址,用來測試本機的TCP/IP協議棧,好比你在cmd裏輸入:ping 127.0.0.1:windows

 

看到的就是向本機發送請求包,這個請求只會在你的本地跑,不會經過網絡發送出去。瀏覽器

 「本地」,你必定還想到了localhost,打開你的hosts文件(右鍵選擇用notenotepad++打開):服務器

能夠看到:微信

是的,127.0.0.1和localhost的是「等價的」:網絡

localhost是個域名,性質跟 「www.baidu.com」 差很少。(不能直接綁定套接字,必須先gethostbyname)轉成IP才能綁定——括號裏的字我也不太明白。也就是說你的localhost默認的ip就是127.0.0.1。app

如今咱們就能夠這樣理解了,地址寫127.0.0.1的意思就是要在本地進行訪問:oop

咱們把地址直接寫成localhost,這樣也是能夠調通的。post

端口號:4723

這個值不是固定的,惟一的要求就是——不要衝突,你能夠在cmd你查看目前佔用的端口號,輸入命令

netstat -ano查看全部端口占用;

netstat -ano | findstr 「4723」 查看4723端口號被哪一個程序佔用

第一個沒有查看到程序,由於宏哥沒有開啓appium

宏哥開始啓動appium第二個查看到了

也能夠打開你的appium:

   

在這裏就能夠修改端口號了,可是你在這裏怎麼改端口號,那麼你代碼裏就要對應的修改端口號。

/wd/hub

將鼠標定位到remote 放在上邊,而後按住Ctrl點擊鼠標左鍵進入源碼,咱們來看源碼:

能夠看到,WebDriver類在初始化時也定義了一個地址,除了端口號不同其它的和咱們傳的是同樣的。所以咱們就能夠簡單的把/wd/hub理解爲——(烏龜的屁股--龜腚)規定。

設置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,能夠加宏哥的微信拉你進羣,請備註:進羣)          

                                                                 

原文出處:https://www.cnblogs.com/du-hong/p/11375525.html

相關文章
相關標籤/搜索