1. 程式人生 > >python app自動化測試 入門篇

python app自動化測試 入門篇

移動端的app自動化測試需要一定的開發基礎才能完成,首先從環境搭建會有些繁瑣,目前使用比較多的是appium配合進行自動化測試,我理解的就是appium比較小巧而能完成需求,所以比較火一些。

首先環境準備:

1.首先安裝node.js


我記得我使用v8的時候有一個bug處理不了,建議穩定版吧。

安裝完畢之後,可以檢視是否成功:


2.準備android-sdk

下載就行了,時間會長些。

配置sdk


把sdk所處的目錄下面的

D:\soft\android-windows-x86_64\sdk\tools

D:\soft\android-windows-x86_64\sdk\platform-tools

這2個加入到Path裡面去


3.安裝一個模擬器

模擬器可以直接下載 夜神 模擬器(直接百度 夜 即可)

也可以下載官方指定的Genymotion模擬器(百度即可)

我這裡使用的是Genymotion模擬器


模擬器啟動之後,使用adb命令之後就會發現這個裝置,這表明已經成功了。

4.安裝appium


記得選擇ForWindows的就行了,這是一個exe檔案下載完畢,直接安裝就行了,不囉嗦了。

記得配置下path變數


安裝完畢之後開啟是否正常:


4.安裝python這個比較簡單就不多說了,安裝python之後裝一個pip,這個上篇文章已經講過了,pip安裝完畢之後執行命令:pip install Appium-Python-Client,至此環境完畢。

這樣前期的環境已經準備完畢了。

開始寫測試指令碼:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
import unittest
from appium import webdriver
from time import sleep

PATH = lambda p: os.path.abspath(
    os.path.join(os.path.dirname(__file__), p)
)
class NewsTest(unittest.TestCase):
    ##初始化工作
    def setUp(self):

        capabilities = {}
        capabilities['platformName'] = 'Android'
        capabilities['platformVersion'] = '5.1'
        capabilities['deviceName'] = 'Android Emulator'
        capabilities['appPackage'] = 'com.example.android.contactmanager'
        capabilities['appActivity'] = '.ContactManager'
        capabilities['app'] = PATH('./apps/ContactManager.apk')
        capabilities['unicodeKeyboard'] = 'True'
        capabilities['resetKeyboard'] = 'True'
        driver = webdriver.Remote('http://localhost:4723/wd/hub', capabilities)
        self.driver = driver

    # 具體的測試用例,一定要以test開頭
    def test_add_contacts(self):
        el = self.driver.find_element_by_accessibility_id("Add Contact")
        el.click()
        textfields = self.driver.find_elements_by_class_name("android.widget.EditText")
        textfields[0].send_keys("Appium User")
        textfields[2].send_keys("
[email protected]
") self.assertEqual('Appium User', textfields[0].text) self.assertEqual('[email protected]', textfields[2].text) self.driver.find_element_by_accessibility_id("Save").click() # 退出清理工作 def tearDown(self): self.driver.quit() if __name__ == '__main__': suite = unittest.TestLoader().loadTestsFromTestCase(NewsTest) unittest.TextTestRunner(verbosity=2).run(suite)

這是我自己寫的一個測試指令碼:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
import unittest
from Util import Util
from appium import webdriver
from time import sleep

PATH = lambda p: os.path.abspath(
    os.path.join(os.path.dirname(__file__), p)
)
class BaTest(unittest.TestCase):

    def setUp(self):

        #設定執行引數
        capabilities = {}
        capabilities['platformName'] = 'Android'
        capabilities['platformVersion'] = '5.1'
        capabilities['deviceName'] = 'Android Emulator'
        capabilities['appPackage'] = 'com.yuanyou.office'
        capabilities['app'] = PATH('./apps/app-release.apk')
        capabilities['unicodeKeyboard'] = 'True'
        capabilities['resetKeyboard'] = 'True'
        driver = webdriver.Remote('http://localhost:4723/wd/hub', capabilities)
        self.driver = driver
        self.LIST_LATIN  = "adb shell ime set com.android.inputmethod.latin/.LatinIME"
        self.LIST_APPIUM = "adb shell ime set io.appium.android.ime/.UnicodeIME"

    def test_login(self):
         sleep(10)
         #切換輸入法
         os.system(self.LIST_LATIN)
         #設定賬號
         self.driver.find_element_by_id('et_phone').send_keys('15922222222')
         self.driver.find_element_by_id('et_pwd').send_keys('123456')
         #點選登陸
         self.driver.find_element_by_id('btn_login').click()
         #切換輸入法
         os.system(self.LIST_APPIUM)
         #模擬請假申請
         list = self.driver.find_elements_by_id('work_gridview_item_LL')
         list[3].click()
         list1 = self.driver.find_elements_by_id("ll")
         list1[0].click()

    def tearDown(self):
        self.driver.quit()


if __name__ == '__main__':
    suite = unittest.TestLoader().loadTestsFromTestCase(BaTest)
    unittest.TextTestRunner(verbosity=2).run(suite)

這是一個公開的app測試指令碼,對應的程式碼包下載:http://download.csdn.net/download/gaoxuaiguoyi/9961131

相關推薦

python app自動化測試 入門

移動端的app自動化測試需要一定的開發基礎才能完成,首先從環境搭建會有些繁瑣,目前使用比較多的是appium配合進行自動化測試,我理解的就是appium比較小巧而能完成需求,所以比較火一些。 首先環境準備: 1.首先安裝node.js 我記得我使用v8的時候有一個bu

python自動化測試入門-jemter參數化

方式 進行 .com key define time code 登錄接口 一個 一、Jmeter參數化 1、使用用戶自定義變量 用戶定義的變量,引用方式:${定義參數名稱};例如定義一個變量IP,使用它的時候用 ${IP}. 添加一個 User Defined Va

《手把手教你》系列練習之7-python+ selenium自動化測試 -壓軸(詳細教程)

1. 簡介   “壓軸”原本是戲曲名詞,指一場摺子戲演出的倒數第二個劇目。在現代社會中有很多應用,比如“壓軸戲”,但壓軸也是人們知識的一個盲區。“壓軸”本意是指倒數第二個節目,而不是人們常說的倒數第一個,倒數第一個節目稱“壓臺

安卓自動化測試入門視頻課程 Python

nat ron 詳細 mod api接口 流量 for watermark 兩種 [free] 第1章 課程介紹(需要有Android和python基礎)如果你想學習移動端專項測試與自動化測試的知識,不知道從哪裏開始! 如果你想從事測試工作,面試卻四處碰壁, 不知道錯在哪裏

安卓自動化測試入門 Python

第1章 課程介紹(需要有Android和python基礎)如果你想學習移動端專項測試與自動化測試的知識,不知道從哪裡開始! 如果你想從事測試工作,面試卻四處碰壁, 不知道錯在哪裡! 如果你一直在做功能性測試,不知道前途在哪裡!  那麼這個課程就是你需要的!第2章 Androi

python專項測試——Android App自動化測試框架

selenium sdk str ase val 測試環境 self ron app自動化 1 為什麽需要框架? 代碼混亂,難閱讀; 重復編碼,效率低;需求變化,難維護; 一 自動化實例 1 準備測試的app;準備測試環境;實現腳本; 2 測試app:只有登錄功能

Python + Robotframework + Appium 之APP自動化測試小試牛刀(Android)

transform all 分享 直接 round letter 執行 image col Robotframework如何好?這裏先不說了~ Python更不用說了~ Appium前面的文章有介紹~ 今天直接來Python+Robotframework+Appium

Python + Robotframework + Appium 之APP自動化測試實踐(二)

廢話不多說,直接來實踐(二),本次基於Android手機Settings模組下的search功能進行的自動化測試,程式碼如下 :   1 *** Settings *** 2 Library AppiumLibrary 3 4 *** Variables

App自動化測試探索(二)MAC環境搭建iOS+Python+Appium測試環境

code -s image ios 使用 usr developer contents gis 環境搭建要求,MAC 機器一臺,要求 Xcode 8.0以上 1. 安裝 Homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw

App自動化測試Appium+Python最新資料

課程目錄:" D5 I4 h8 P. l第一章:App自動化測試概述, y, D6 G& C1 J  ~& y0 Y; }第二章:Android系統基礎3 P7 V: p( t5 o5 ]. P& e第三章:測試工具簡介第四章:Appium基礎8 ~4 `; o7

python使用pywinauto實現桌面APP自動化測試

準備:1、安裝python,安裝版本為2.7.14,並將python新增至系統變數。2、安裝pywinauto:進入python安裝目錄,進入Scripts目錄下,shift+右鍵,點選在此處開啟命令視窗,輸入命令:pip install pywinauto,系統將自動下載並

python自動化測試--Andriod App自動化-Appium的那些坑

第一個坑, UiSelector.text裡面的字元必須是雙引號括起來,在Python裡面字元可以單引號,也可以雙引號。但UiSelector 是Andriod SDK 裡面的函式,Andriod SDK 是JAVA實現的,字元只能雙引號括起來。 driver.find

appium+python+android+ios APP自動化測試環境搭建

一. 安裝brew sudo chmod -R g+w /usr/localruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"二. 安裝python

Selenium自動化測試入門(基於Python

本人小白 最近在嘗試學習Python 開篇記錄 只為交流 相互學習O(∩_∩)O~~ Selenium,化學元素硒的英文示意,對於軟體測試來書,則是一個主要用於Web應用程式自動化測試的工具集合; 之前有這個計劃來學習和使用自動化測試到專案中去,以滿足公司需求,所以閒

🔥《手把手教你》系列基礎之3-python+ selenium自動化測試-驅動瀏覽器和元素定位大法(詳細)

1. 簡介 上一篇中,只是簡單地一帶而過的說了一些驅動瀏覽器,這一篇繼續說說驅動瀏覽器,然後再說一說元素定位的方法。 完成環境的安裝並測試之後,我們對Selenium有了一定的瞭解了,接下來我們繼續驅動瀏覽器做一些基本操作: 視窗尺寸設定、網頁截圖、重新整理、前進和後退 2. 視窗尺寸設定 在測試過程中,我們

《手把手教你》系列練習之2-python+ selenium自動化測試(詳細教程)

1. 簡介   今天我們還是繼續練習練習基本功,各位小夥伴要耐住住性子,要耐得住寂寞啊,不要急躁,後面你會感謝你在前邊的不斷練習的。到後面也是檢驗你前邊的學習成果的一次很好實踐。 本文介紹如何通過link text、partial link text、class name和name 來定位

《手把手教你》系列練習之3-python+ selenium自動化測試(詳細教程)

1.  簡介   前面介紹了,XPath, id , class , link text, partial link text, tag name, name 七大元素定位方法,本文介紹webdriver支援的最後一個方法:by_css。css和XPath類似,也需要掌握一些語法,才能寫出正確的,完

《手把手教你》系列練習之4-python+ selenium自動化測試(詳細教程)

1.  簡介   今天我們繼續前邊的練習,學習和練習一下:如何使用webdriver方法獲取當前測試頁面的URL、如何獲取當前頁面的title、如何開啟瀏覽器的一個新建頁面、如何操作單選按鈕等等,這些小練習,來鞏固基礎。 2. webdriver方法獲取當前測試頁面的URL   本小節介紹如何通過w

《手把手教你》系列練習之5-python+ selenium自動化測試(詳細教程)

1.  簡介   今天我們繼續前邊的練習,學習和練習一下:如何使用webdriver方法獲取操作複選框-CheckBox、測試不同的解析度、如何斷言title、如何獲取某一個元素的text屬性值等等,這些小練習,來鞏固基礎。 2.操作複選框-Checkbox 本小節介紹Selenium中,如何操作複

《手把手教你》系列練習之6-python+ selenium自動化測試(詳細教程)

1. 簡介   前面文章我們瞭解瞭如何獲取元素的text屬性值,和判斷元素是否顯示在頁面(is_displayed()方法),本文我們來學習下,判斷一個控制元件是否被選中狀態、獲取頁面元素的大小、組合鍵-全選文字、組合鍵-退格鍵刪除文字和滑鼠右鍵等練習的內容。 2. 驗證控制元件是否被選中 還是以百度首頁點選