溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

發(fā)布時(shí)間:2021-01-28 09:20:48 來源:億速云 閱讀:184 作者:Leah 欄目:開發(fā)技術(shù)

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

一、安裝Python3

直接登錄Python官網(wǎng)https://www.python.org/,下載最新版本即可。

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

然后安裝的時(shí)候注意一下安裝路徑,比如我的安裝路徑D:\Python37,接下來會(huì)用到這個(gè)安裝路徑。

二、安裝Python3的Appium庫

打開Python安裝目錄,找到Scripts文件夾,點(diǎn)進(jìn)去,示例:

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

在地址欄上輸入cmd,然后回車,打開控制臺(tái):

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

在控制臺(tái)里輸入命令pip install Appium-Python-Client,然后回車

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

看到下圖的提示就表明安裝成功了

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

三、安裝Android SDK

我懶得折騰,所以就直接下載了Android Studio
下載地址
https://developer.android.com/studio/#downloads

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

下載完成開始安裝

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

如果需要安裝自帶的模擬器,就把這一項(xiàng)勾選上,然后Next,接下來選擇安裝路徑,比如我的同樣放在D

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

接下來一路Next,到了選擇SDK的頁面注意一下

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

選擇Custom,這樣可以只安裝自己喜歡的部分,接下來選擇主題,當(dāng)然這個(gè)以后可以在Android Studio里邊改

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

繼續(xù)Next,到達(dá)定制組件頁面,如下圖

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

設(shè)置一下SDK的安裝路徑,比如我的是D:\Android\SDK,接下來繼續(xù)Next…finish。然后就進(jìn)入了緩慢的下載環(huán)節(jié),讓它在這兒慢慢的下載吧,下載完成后就好了。我們可以進(jìn)入下一節(jié)了。

四、安裝JDK

這里我使用的是JDK8,下載地址
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

接受協(xié)議,然后選擇對(duì)應(yīng)平臺(tái)下載即可

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

接下來安裝過程比較簡單,也是一路Next,注意選擇一下安裝路徑,比如我的安裝路徑D:\Java\jdk1.8

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

五、安裝Appium

官網(wǎng)地址 http://appium.io/

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

點(diǎn)擊下載按鈕會(huì)到GitHub的下載頁面,選擇對(duì)應(yīng)平臺(tái)下載

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

Windows就選這個(gè)(快捷下載)

安裝完成后,啟動(dòng)Appium,host和port默認(rèn)的即可,然后編輯下配置信息

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能
怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

然后點(diǎn)下邊那個(gè)保存并重啟的按鈕,然后點(diǎn)第一個(gè)Start Server按鈕,將會(huì)看到

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

如果使用真機(jī)測試,插上手機(jī)就可以開始編寫腳本測試了。但是呢,由于手邊沒有數(shù)據(jù)線,就采用模擬器了,所以有了下一節(jié)。

六、安裝模擬器

這里使用的是夜神模擬器下載地址 https://www.yeshen.com/,之所以不用Android自帶的,是因?yàn)橛浀枚嗄昵皢?dòng)一次要好久,然后就再也沒用過。
這個(gè)也沒有什么好說的,也是注意一下安裝路徑,然后一路下一步就好了。
安裝完成后要進(jìn)行一下簡單修改:

  • 打開安裝目錄,進(jìn)入到bin目錄(比如:D:\Nox\bin

  • 把第三節(jié)里安裝好的Android SDK里的adb.exe文件(比如我的在D:\Android\SDK\platform-tools目錄下)復(fù)制到該目錄覆蓋掉該目錄已存在的adb.exe文件

  • 刪掉該目錄的nox_adb.exe文件,再復(fù)制一份adb.exe并重命名為nox_adb.exe

  • 啟動(dòng)模擬器

  • 再該目錄打開控制臺(tái),執(zhí)行nox_adb.exe connect 127.0.0.1:62001,然后執(zhí)行adb devices,看到如下信息就表示成功了

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

在模擬器里安裝測試apk文件,這里以一個(gè)計(jì)算器為例,直接將apk文件拖到模擬器里即可

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

繼續(xù)在剛剛的控制臺(tái)窗口里輸入aapt dump badging D:\apk\com.youdao.calculator-2.0.0.apk,其中D:\apk\com.youdao.calculator-2.0.0.apk是測試apk的完整路徑。

怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能

可以看到安裝包的信息都打印出來了,記錄下紅框里這兩個(gè)名稱,待會(huì)兒寫測試腳本的時(shí)候要用。
注意,如果模擬器重啟了,需要執(zhí)行第5步的nox_adb.exe connect 127.0.0.1:62001 七、編寫測試腳本并生成測試報(bào)告

1.創(chuàng)建測試用例目錄testcase,在該目錄下創(chuàng)建test_app.py文件

import time
import unittest

from appium import webdriver


class MyTests(unittest.TestCase):
 # 測試開始前執(zhí)行的方法
 def setUp(self):
  desired_caps = {'platformName': 'Android', # 平臺(tái)名稱
      'platformVersion': '4.4.2', # 系統(tǒng)版本號(hào)
      'deviceName': '127.0.0.1:62001', # 設(shè)備名稱。如果是真機(jī),在'設(shè)置->關(guān)于手機(jī)->設(shè)備名稱'里查看
      'appPackage': 'com.youdao.calculator', # apk的包名
      'appActivity': 'com.youdao.calculator.activities.MainActivity' # activity 名稱
      }
  self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps) # 連接Appium
  self.driver.implicitly_wait(8)

 def test_calculator(self, t=500, n=4):
  """計(jì)算器測試"""
  time.sleep(3)
  window = self.driver.get_window_size()
  x0 = window['width'] * 0.8 # 起始x坐標(biāo)
  x1 = window['width'] * 0.2 # 終止x坐標(biāo)
  y = window['height'] * 0.5 # y坐標(biāo)
  for i in range(n):
   self.driver.swipe(x0, y, x1, y, t)
   time.sleep(1)
  self.driver.find_element_by_id('com.youdao.calculator:id/guide_button').click()
  for i in range(6):
   self.driver.find_element_by_accessibility_id('Mathbot Editor').click()
   time.sleep(1)

  btn_xpath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.support.v4.widget.DrawerLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.LinearLayout[2]/android.widget.LinearLayout/android.widget.LinearLayout[3]/android.view.View/android.widget.GridView/android.widget.FrameLayout[{0}]/android.widget.FrameLayout'
  self.driver.find_element_by_xpath(btn_xpath.format(7)).click()
  self.driver.find_element_by_xpath(btn_xpath.format(10)).click()
  self.driver.find_element_by_xpath(btn_xpath.format(8)).click()
  time.sleep(3)

 # 測試結(jié)束后執(zhí)行的方法
 def tearDown(self):
  self.driver.quit()

2.創(chuàng)建run.py文件

import os
import time
import unittest

from HTMLTestRunner import HTMLTestRunner

test_dir = './testcase'
discover = unittest.defaultTestLoader.discover(start_dir='./testcase', pattern="test*.py")

if __name__ == "__main__":
 report_dir = './test_report'
 os.makedirs(report_dir, exist_ok=True)
 now = time.strftime("%Y-%m-%d %H-%M-%S")
 report_name = '{0}/{1}.html'.format(report_dir, now)

 with open(report_name, 'wb')as f:
  runner = HTMLTestRunner(stream=f, title="測試報(bào)告", description="本測試報(bào)告內(nèi)容包含超級(jí)計(jì)算器的簡單測試")
  runner.run(discover)

關(guān)于怎么在Python3 中利用Appium實(shí)現(xiàn)一個(gè)自動(dòng)化測試功能問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI