日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

python android自动化元素定位_linux下Appium+Python移动应用自动化测试实战---3.手把手教你定位元素编写测试用例...

發(fā)布時間:2025/3/21 linux 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python android自动化元素定位_linux下Appium+Python移动应用自动化测试实战---3.手把手教你定位元素编写测试用例... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

linux下Appium+Python移動應(yīng)用自動化測試實戰(zhàn)—3.手把手教你定位元素編寫測試用例

前言

有很多童鞋環(huán)境搭建好了卻沒有進行下一步,是因為缺少step by step的資料。 互聯(lián)網(wǎng)上appium環(huán)境準(zhǔn)備的資料多如牛毛,但是step by step操作的資料卻少了很多。春節(jié)前的最后一個工作日事情不是很多,順便把這一塊總結(jié)整理一下,分享給需要的人。

下面所有的操作都是基于你已經(jīng)準(zhǔn)備好前面描述的所有安裝部件的情況。

1. 操作前的準(zhǔn)備

1.1 啟動appium server

命令行中直接運行appium,啟動appium服務(wù)。

appium1

出現(xiàn)如下圖所示的相關(guān)信息的時候,表示appium server已經(jīng)成功啟動。

1.2 啟動DDMS(Android Monitor)

在A N D R O I D S D K H O M E / t o o l s 目 錄 下 , 運 行 m o n i t o r 。 或 者 在 你 正 確 設(shè) 置 了 A n d r o i d S D K 環(huán) 境 變 量 并 生 效 的 情 況 下 , 在 任 意 個 命 令 行 或 者 目 錄 下 , 直 接 執(zhí) 行 {ANDROID_SDK_HOME}/tools目錄下,運行monitor。 或者在你正確設(shè)置了Android SDK環(huán)境變量并生效的情況下,在任意個命令行或者目錄下,直接執(zhí)行ANDROIDS?DKH?OME/tools目錄下,運行monitor?;蛘咴谀阏_設(shè)置了AndroidSDK環(huán)境變量并生效的情況下,在任意個命令行或者目錄下,直接執(zhí)行{ANDROID_SDK_HOME}/tools/monitor命令即可。

${ANDROID_SDK_HOME}/tools/monitor1

如果沒有異常的話,會出現(xiàn)如下圖所示的界面。

這個時候的界面空空,什么內(nèi)容都沒有。

1.3 啟動Android模擬器

運行android studio,依次進入“Configure/AVD Manager”,運行已經(jīng)配置好的Android模擬器。

這里執(zhí)行速度視機器性能而定,Android模擬器啟動完成以后,回到Android Monitor, 這時候發(fā)現(xiàn)左邊的devices列表中多了一個Android 模擬器,狀態(tài)是Online,如下圖。

這里要多啰嗦幾句。一定要先啟動Android Monitor,再啟動Android模擬器,否則會出現(xiàn)Android模擬器狀態(tài)一直是offline的情況。這里我沒有深究具體原因,但是在我的linux系統(tǒng)下,如果先啟動模擬器再啟動monitor的話,這個問題必然出現(xiàn)。

1.4 運行被測試APP

這里以Android模擬器自帶的計算機為例子進行講解。

在Android模擬器上運行Calculator程序,只要進入主界面就可以了,如下圖所示。

在Android Monitor界面,選中devices列表中的模擬器,然后點擊中間那個小手機圖標(biāo)(Dump View Jierarchy for UI Automator),如下圖。

信息加載完成以后,模擬器上運行的計算器程序界面展示在了Monitor中,如下圖。

從上圖中可以看出計算器APP的包名是com.android.calculator2。

1.4 獲取App的包信息

命令行中運行adb shell dumpsys package YOUR_PACKAGE_NAME即可獲取對應(yīng)的包信息。

adb shell dumpsys package com.android.calculator21

如下圖

等會兒編寫測試代碼的時候,要用到這些信息。

2. 獲取界面元素并編寫測試用例

2.1 獲取界面元素

在Android Monitor上面,每點選一個界面元素,右邊就會顯示對應(yīng)的控件的ID,可以直接拷貝控件ID用于在測試用例中識別界面元素,如下圖。

2.2 編寫測試用例腳本

創(chuàng)建一個名稱為Calculator.py的python腳本,內(nèi)容如下。

#!/usr/bin/python3

import selenium

import time

import pytest

from appium import webdriver

my_dc = dict()

my_dc['platformName'] = 'Android' #平臺為Android

my_dc['platformVersion'] = '7.1.1' #平臺版本為7.1.1

my_dc['deviceName'] = 'Android_SDK_built_for_x86 device' # 取一個機器名字

my_dc['appPackage'] = 'com.android.calculator2' # 被測試App的包名

my_dc['appActivity'] = '.Calculator' # 被測試App的主Activity

driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", my_dc) # 鏈接Appium服務(wù)器創(chuàng)建webdriver實例

###下面的測試用例定義的時候,一定要以test開頭,否則pytest不認(rèn)為是測試用例。

# 計算器 加法測試用例

def test_addition(): driver.find_element_by_id("com.android.calculator2:id/digit_3").click() #點擊3 driver.find_element_by_id("com.android.calculator2:id/op_add").click() #點擊+ driver.find_element_by_id("com.android.calculator2:id/digit_7").click() #點擊7 driver.find_element_by_id("com.android.calculator2:id/eq").click() #點擊= result = driver.find_element_by_id("com.android.calculator2:id/result").text #獲取計算結(jié)果并賦值給變量result assert result == "10" #計算結(jié)果跟預(yù)期結(jié)果相符

# 計算器 減法測試用例

def test_subtraction(): driver.find_element_by_id("com.android.calculator2:id/digit_9").click() driver.find_element_by_id("com.android.calculator2:id/op_sub").click() driver.find_element_by_id("com.android.calculator2:id/digit_7").click() driver.find_element_by_id("com.android.calculator2:id/eq").click() result = driver.find_element_by_id("com.android.calculator2:id/result").text assert result == "2"

# 計算器 乘法測試用例

def test_multiplication(): driver.find_element_by_id("com.android.calculator2:id/digit_9").click() driver.find_element_by_id("com.android.calculator2:id/op_mul").click() driver.find_element_by_id("com.android.calculator2:id/digit_7").click() driver.find_element_by_id("com.android.calculator2:id/eq").click() result = driver.find_element_by_id("com.android.calculator2:id/result").text assert result == "63"

# 計算器 除法測試用例

def test_divition(): driver.find_element_by_id("com.android.calculator2:id/digit_9").click() driver.find_element_by_id("com.android.calculator2:id/op_div").click() driver.find_element_by_id("com.android.calculator2:id/digit_3").click() driver.find_element_by_id("com.android.calculator2:id/eq").click() result = driver.find_element_by_id("com.android.calculator2:id/result").text assert result == "3"1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

上面的腳本內(nèi)容不做詳細(xì)解釋。 僅僅注意下面兩點。

(1)界面元素的定位,使用了 driver.find_element_by_id方法,ID就是上面2.1中獲取的界面元素ID。

(2)測試腳本中引用了pytest庫進行測試用例編寫。pytest庫要求每個測試用例都是以test_開頭。

2.3 執(zhí)行測試用例

命令行中通過下面的命令執(zhí)行測試用例。

pytest calculator.py1

運行結(jié)果如下圖。

運行過程中,你會看到模擬器的手機界面上,按照測試用例預(yù)期的順序依次點擊了各個界面元素,并且得到了預(yù)期的測試結(jié)果。

最后,附上,測試用例執(zhí)行過程中,模擬器界面,以及Appium服務(wù)器上的動態(tài)效果視頻。

https://v.youku.com/v_show/id_XNTEwMTk5NDI1Mg==.html

文章來源: blog.csdn.net,作者:阿爾泰野狼,版權(quán)歸原作者所有,如需轉(zhuǎn)載,請聯(lián)系作者。

原文鏈接:blog.csdn.net/lipeixinglive/article/details/113783193

總結(jié)

以上是生活随笔為你收集整理的python android自动化元素定位_linux下Appium+Python移动应用自动化测试实战---3.手把手教你定位元素编写测试用例...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。