欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

ui自動(dòng)化java代碼 java ui自動(dòng)化

一般大公司UI自動(dòng)化測(cè)試使用什么工具呢

1、Selenium:該軟件是一個(gè)用于Web應(yīng)用程序測(cè)試的工具。其測(cè)試直接運(yùn)行在瀏覽器中,支持的瀏覽器包括IE、Mozilla Firefox、Mozilla Suite等。支持Net、Java、Perl等不同語(yǔ)言的測(cè)試腳本。

成都創(chuàng)新互聯(lián)成立以來(lái)不斷整合自身及行業(yè)資源、不斷突破觀(guān)念以使企業(yè)策略得到完善和成熟,建立了一套“以技術(shù)為基點(diǎn),以客戶(hù)需求中心、市場(chǎng)為導(dǎo)向”的快速反應(yīng)體系。對(duì)公司的主營(yíng)項(xiàng)目,如中高端企業(yè)網(wǎng)站企劃 / 設(shè)計(jì)、行業(yè) / 企業(yè)門(mén)戶(hù)設(shè)計(jì)推廣、行業(yè)門(mén)戶(hù)平臺(tái)運(yùn)營(yíng)、APP應(yīng)用開(kāi)發(fā)手機(jī)網(wǎng)站制作設(shè)計(jì)、微信網(wǎng)站制作、軟件開(kāi)發(fā)、西部信息服務(wù)器托管等實(shí)行標(biāo)準(zhǔn)化操作,讓客戶(hù)可以直觀(guān)的預(yù)知到從成都創(chuàng)新互聯(lián)可以獲得的服務(wù)效果。

2、Soapui:SoapUI是一款開(kāi)源測(cè)試工具,通過(guò)soap/http來(lái)檢查、調(diào)用、實(shí)現(xiàn)Web Service的功能/負(fù)載/符合性測(cè)試。可快速的幫助用戶(hù)進(jìn)行http的接口測(cè)試,并且還支持進(jìn)行檢查,監(jiān)控、符合等功能。

3、Robot Framework:該軟件是一款python編寫(xiě)的功能自動(dòng)化測(cè)試框架。具備良好的可擴(kuò)展性,支持關(guān)鍵字驅(qū)動(dòng),可以同時(shí)測(cè)試多種類(lèi)型的客戶(hù)端或者接口,可以進(jìn)行分布式測(cè)試執(zhí)行。主要用于輪次很多的驗(yàn)收測(cè)試和驗(yàn)收測(cè)試驅(qū)動(dòng)開(kāi)發(fā)。

4、QTP:該軟件提供符合所有主要應(yīng)用軟件環(huán)境的功能測(cè)試和回歸測(cè)試的自動(dòng)化。采用關(guān)鍵字驅(qū)動(dòng)的理念以簡(jiǎn)化測(cè)試用例的創(chuàng)建和維護(hù)。它讓用戶(hù)可以直接錄制屏幕上的操作流程,自動(dòng)生成功能測(cè)試或者回歸測(cè)試用例。

5、Jmeter:JMeter是Apache組織的開(kāi)放源代碼項(xiàng)目,它是功能和性能測(cè)試的工具,100%的用java實(shí)現(xiàn);可以用于測(cè)試靜態(tài)或者動(dòng)態(tài)資源的性能(文件、Servlets、Perl腳本、java對(duì)象、數(shù)據(jù)庫(kù)和查詢(xún)、ftp服務(wù)器或者其他的資源)。

參考資料來(lái)源:百度百科-Selenium

參考資料來(lái)源:百度百科-Soapui

參考資料來(lái)源:百度百科-Robot Framework

參考資料來(lái)源:百度百科-QTP

參考資料來(lái)源:百度百科-Jmeter

Appium《元素定位和UiAutomator表達(dá)式》

一、常見(jiàn)屬性的用法

二、通過(guò)截圖就可以看到元素的屬性,那怎么元素定位呢?

三、問(wèn)題

xpath 相對(duì)定位:如果相對(duì)定位中這個(gè)元素是有 id 的,這個(gè) id 是唯一的,xpath 定位中優(yōu)先通過(guò) id 來(lái)定位。

class 屬性對(duì)應(yīng)的值是元素類(lèi)型(是一個(gè)文本視圖工具),Web 自動(dòng)化中元素類(lèi)型代表 Input、image、button 這樣的標(biāo)簽名。

「resource-id 是唯一的,但是在 App 頁(yè)面中并不絕對(duì)唯一。大部分情況下是唯一的,小部分情況下是重復(fù)的。」

如果一個(gè)頁(yè)面中,元素的樣式非常像,那很有可能它們的 id 就是一樣的。UIAutomator Viewer 這個(gè)自帶的工具是不能看出這個(gè) id 是不是絕對(duì)唯一的。

「假設(shè) resource-id 是唯一的,用相對(duì)定位這樣定位:」

和 Web 自動(dòng)化一樣的玩法: 元素類(lèi)型[@屬性名稱(chēng)=屬性值]

這里的 class 不是 Web 網(wǎng)頁(yè)中的 class 屬性了,這里代表它的標(biāo)簽名和元素類(lèi)型(它是一個(gè)圖片、一個(gè)文字、鏈接還是一個(gè)按鈕呢?學(xué)會(huì)區(qū)分)。

如果 resource-id 不是唯一的,那么上面那個(gè)表達(dá)式是不夠的,還會(huì)追加到上層的 Linearlayout 、 RelativeLayout 、包括祖先里面的一些層級(jí)都會(huì)放進(jìn)來(lái)。

如果沒(méi)有安裝“升級(jí) uiaumatorview-添加元素定位”就只能靠自己來(lái)判斷。看下其它和它長(zhǎng)得很像、元素的格式、風(fēng)格、樣式、頁(yè)面布局都和它一模一樣的元素,看下各位的 id 是否全都是一樣的。

如果用了“升級(jí) uiaumatorview-添加元素定位”,可以根據(jù)它的表達(dá)式自己來(lái)判斷。

任何一個(gè)元素一定會(huì)有個(gè) class,因?yàn)樗且粋€(gè)類(lèi)別。Linearlayout 是一樣的,布局也是安卓的控件,所以也會(huì)有控件名稱(chēng)、控件類(lèi)型。

以下這些東西只有 2 個(gè)值,F(xiàn)alse 和 True。

以上這些屬性在很多情況下是沒(méi)有用的,但是在關(guān)鍵的時(shí)刻是很有用的。

例如想篩選當(dāng)前頁(yè)面中可以滾動(dòng)的元素,通過(guò) scrollable 等于 True 來(lái)過(guò)濾。

和 Web 自動(dòng)化一樣的,都是通過(guò)元素屬性來(lái)定位,而且比 Web 自動(dòng)化簡(jiǎn)單。

App 中只支持 5 種元素定位方式。雖然繼承了 Web 自動(dòng)化的元素定位,它之所以繼承呢,是用到了其中的一個(gè)部分。

1、通過(guò) id 定位元素:resrouce-id

2、通過(guò) ClassName 定位:classname

3、通過(guò) AccessibilityId 定位:content-desc

4、通過(guò) AndroidUiAutomator 定位

5、通過(guò) xpath 定位

1、通過(guò) id 定位元素:resrouce-id

2、通過(guò) ClassName 定位:classname

3、通過(guò) xpath 定位

有 find_element_by_id() 就有 find_elements_by_id()

可以找到多個(gè),它的返回值一樣是列表。它的返回對(duì)象一樣是 Web element 。

在它的下面有個(gè) find_element_by_id() 。它的方法和 Web 自動(dòng)化是一樣的。

雖然這里代表的是元素類(lèi)型,但它同樣是 class 屬性。

這里有點(diǎn)區(qū)別,但是方法名還是沒(méi)有區(qū)別的。這個(gè) class 的屬性其實(shí)沒(méi)有多大用處,一個(gè)頁(yè)面中肯定很多屬性的值和它很像的。所以這種用法不多。

既然是類(lèi)別,圖片可能有好多種,輸入框也有好多種,它代表的是一種元素的類(lèi)型。

「Web 自動(dòng)化中 xpath 定位是最常用的,但是 App 自動(dòng)化中 xpath 是最不想用的。原因是它的效率太低了。」

「如果全部只用 xpath 定位,問(wèn)題會(huì)比較大,能不用 xpath 就不用 xpath」 。

AccessibilityId 是移動(dòng)端特有的定位方式。

這是之前看到的類(lèi),這個(gè)類(lèi)當(dāng)中除了繼承了 Web 自動(dòng)化之外,對(duì)于安卓有 2 種,其中一種是 ACCESSIBILITY_ID 。

如果通過(guò)這種方式定位,對(duì)應(yīng)的方式就是:

此處應(yīng)輸入 content-desc 的值,但是這里是空的,所以不能通過(guò)它定位。

但是 find_element_by_accessibility_id() 是另外一種 id,代表它在當(dāng)前這個(gè)頁(yè)面中也是很獨(dú)特的。只要它有值,基本上可以通過(guò)它來(lái)定位。

用的是安卓 UiAutomator 這個(gè)自動(dòng)化框架中提供的元素定位方式。所以想用這種元素定位方式,就必須了解它到底是怎么做的。

UiAutomator 自動(dòng)化庫(kù)是 Java 語(yǔ)言寫(xiě)的,所以它的參數(shù)是 Java 代碼。UiAutomator 自動(dòng)化庫(kù)提供了 text。而 「元素有文本內(nèi)容就可以通過(guò)文本內(nèi)容來(lái)定位。」

這個(gè)里面的參數(shù)就必須是 UiAutomator 當(dāng)中提供的定位方式。UiAutomator 是 Java 實(shí)現(xiàn)的,那么它的定位類(lèi)型肯定也是 Java 實(shí)現(xiàn)的。

UiAutomator 去定位元素的時(shí)候用的 UiSelector 類(lèi)。Api 的官方文檔:

Appium 中通過(guò) driver.find_element 來(lái)找元素的,找到的結(jié)果對(duì)象是一個(gè) WebEmemt 。

「但是括號(hào)里面,不同的定位類(lèi)型你要輸入不同的定位表達(dá)式。」

通過(guò) UiSelector 找到元素,這是表達(dá)式。總有一個(gè)方法通過(guò)它來(lái)找吧?

那就是 UiObject。UiObject 對(duì)應(yīng)到 WebEmemt。WebEmemt 有對(duì)元素的各種操作以及屬性的獲取。 「UiObject 就是 WebEmemt,有各種對(duì)元素的操作。」

通過(guò) UiObject 對(duì)元素進(jìn)行輸入、點(diǎn)擊等操作。

UiAutomator 是它自己的框架,所以對(duì)應(yīng)的做了一套東西。UiSelector 這個(gè)類(lèi)是用來(lái)表達(dá)元素定位的。UiAutomator 這里的參數(shù)就是 UiSelector 類(lèi)定位表達(dá)式。

Public constructors 公共的構(gòu)造函數(shù),構(gòu)造函數(shù)就是初始化函數(shù)。類(lèi)初始化的時(shí)候,有時(shí)候 init 是有參數(shù)的,構(gòu)建函數(shù)當(dāng)中就告訴了你它有沒(méi)有參數(shù)。

有的時(shí)候并不用一個(gè)變量去接收它。在 Web 自動(dòng)化當(dāng)中,直接 實(shí)例名稱(chēng).方法 就可以了。

事實(shí)上只有一個(gè)變量,叫做 val。

清一色的返回值基本都是類(lèi)本身。

如果是一個(gè)實(shí)例化對(duì)象,那它的返回值都是實(shí)例化對(duì)象。每一個(gè)實(shí)例化對(duì)象都可以有這么多方法。

.checkable(true) 返回值就是 new UiSelector() 。接下來(lái)可以通過(guò)別的方式組合起來(lái)。

「多種條件組合起來(lái)對(duì)元素進(jìn)行定位。有些元素的 id 不是唯一的,但是文本是唯一的。可以純粹通過(guò)文本,也可以 id 和文本一起定位。」

「人家這里是“字符串”,在 Java 中單引號(hào)和雙引號(hào)是有區(qū)別的。如果在 Java 中是字符串,只能用雙引號(hào),不然就是報(bào)錯(cuò)。」

new UiSelector().checkable(true).resourceId(“保密”)

通過(guò) 2 個(gè)屬性來(lái)定位的,一個(gè)是 checkable()。

一個(gè)是 resourceId()。兩者都要滿(mǎn)足才能符合我的定位表達(dá)。

匹配到正則表達(dá)式的元素也可以。

textstartswith:以什么開(kāi)頭的一個(gè)字符串。

如果你的文本很長(zhǎng),可以定義以什么開(kāi)頭,也可以實(shí)現(xiàn)部分匹配。只不過(guò)這個(gè)部分匹配是有要求的,必須以什么開(kāi)頭。

這 4 種方式都可以用的,參數(shù)全是字符串。

除了 text 是文本性質(zhì)的,content-desc 也是文本性質(zhì)的。

className:匹配一個(gè)控件的類(lèi)型。

控件類(lèi)型也屬于控件的屬性。大家都叫做控件,但是你叫這個(gè)名字,我叫那個(gè)名字。

UiAutomator 自動(dòng)化庫(kù)提供了各種屬性。只要學(xué)會(huì)表達(dá)式,然后能自己判斷用什么樣的類(lèi)型來(lái)定位就好了。

使用 UiAutomator 中的 UiSelector 類(lèi)來(lái)處理元素定位。

new UiSelector().函數(shù)名稱(chēng)(“定位表達(dá)式”)

字符串是雙引號(hào),布爾值就不是雙引號(hào)了。

實(shí)際上只通過(guò) text 定位就可以了。除了它叫做”我的“,這個(gè)頁(yè)面也沒(méi)有別人叫做”我的“了。

「如果通過(guò) id 定位、ClassName 定位、AccessibilityId 定位這前 3 種方式都沒(méi)有讓你唯一定位到元素,那就用第 4 種呀!」

第 4 種其實(shí)效率很高的,因?yàn)槭侨思铱蚣茏约旱亩ㄎ环绞窖剑疾恍枰D(zhuǎn)換。第 5 種 xpath 定位,寫(xiě)法其實(shí)和 Web 自動(dòng)化的 xpath 定位的寫(xiě)法一樣。xpath 能干的事,第 4 種方式就能全部搞定了。

以上 5 種都搞不定的情況下,就需要用坐標(biāo)了。但是坐標(biāo)不太穩(wěn)定,除非實(shí)在沒(méi)有辦法了才用坐標(biāo),坐標(biāo)比 xpath 還差勁。

一般的 app 都有 id,如果你測(cè)得 app 沒(méi)有 id,那就去給開(kāi)發(fā)提意見(jiàn),把 id 加上。

app 自動(dòng)化相對(duì)來(lái)說(shuō)比較簡(jiǎn)單。如果把“uiaumatorview 升級(jí)版”裝上了,所有的定位表達(dá)式就直接拷貝就好了。

「不需要調(diào)試也不需要考慮上下級(jí)關(guān)系,如果是比較規(guī)范的 app,通過(guò) id 來(lái)定位就可以了。」

和 Web 自動(dòng)化的寫(xiě)法一樣。4 大屬性都一樣(點(diǎn)擊、輸入、獲取元素的文本內(nèi)容、獲取元素的屬性)。函數(shù)名稱(chēng)一樣,操作方式也一樣。需要等待,等待方法也和 Web 自動(dòng)化一樣。

一對(duì)(或一個(gè))標(biāo)簽包含的范圍:其實(shí)可以理解為元素為一個(gè)容器,而這容器里面包含了標(biāo)簽。

這里的一對(duì)標(biāo)簽: 就是開(kāi)始和結(jié)束標(biāo)簽。

范圍:就是從開(kāi)始標(biāo)簽 到結(jié)束標(biāo)簽 下面那個(gè)矩形框架就是這里的范圍。

Appium 的 bug 比較多,需要換個(gè)版本試下,不要裝太老的或者最新的。隔 2-3 個(gè)版本換個(gè)試下。和操作系統(tǒng)也有關(guān)系,有時(shí) win7 不行,win10 就可以。

在 cmd 命令行中啟動(dòng) uiautomatorviewer.exe,命令行有的時(shí)候可以看出來(lái)是什么錯(cuò)誤導(dǎo)致。一般是有沖突。還有看看你的安裝包裝全了沒(méi)有,比如 jdk、環(huán)境變量有沒(méi)有配置正確之類(lèi)的。

一個(gè)登陸頁(yè)面的UI 自動(dòng)化實(shí)現(xiàn)

難點(diǎn):如何獲取動(dòng)態(tài)驗(yàn)證碼?

解決環(huán)境搭建問(wèn)題:

第一步:f12 來(lái)獲取元素的定位方式 ,判斷不同的輸入

from selenium import webdriver;

driver=webdriver.Chrome();

driver.get("");

ele = driver.find_element_by_id("user");

ele.send_keys("admin");

ele = driver.find_element_by_id("password");

ele.send_keys("123456");

ele = driver.find_element_by_name("identify");

ele.send_keys("chjk");

driver.find_element_by_id("login_button").click()

第二步:

執(zhí)行操作

由于驗(yàn)證碼是寫(xiě)死的,所以暫時(shí)還未登陸進(jìn)去。這個(gè)在想解決方法。autoit

如何在另一個(gè)類(lèi)中調(diào)用已經(jīng)寫(xiě)好的UiAutomator Java代碼中的方法

如果你使用Eclipse可以直接new UiAutomator對(duì)象,例如Uiautomator ui = new Uiautomator(),調(diào)用方法幾時(shí)ui.方法名。

調(diào)用其他類(lèi)的方法名一般是新建對(duì)象,然后通過(guò)對(duì)象加“.”調(diào)用方法。如果是靜態(tài)方法就直接類(lèi)名.方法

標(biāo)題名稱(chēng):ui自動(dòng)化java代碼 java ui自動(dòng)化
URL網(wǎng)址:http://www.chinadenli.net/article42/doospec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司Google標(biāo)簽優(yōu)化App設(shè)計(jì)品牌網(wǎng)站制作微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司