国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java + Selenium + Appium自動(dòng)化測(cè)試

這篇具有很好參考價(jià)值的文章主要介紹了Java + Selenium + Appium自動(dòng)化測(cè)試。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、啟動(dòng)測(cè)試機(jī)或者Android模擬器(Genymotion俗稱(chēng)世界上最快的模擬器,可自行百度安裝)

Java + Selenium + Appium自動(dòng)化測(cè)試,軟件測(cè)試,技術(shù)分享,selenium,appium,測(cè)試工具

二、啟動(dòng)Appium(Appium環(huán)境安裝可自行百度)

Java + Selenium + Appium自動(dòng)化測(cè)試,軟件測(cè)試,技術(shù)分享,selenium,appium,測(cè)試工具

三、安裝應(yīng)用到Genymotion上,如下圖我安裝一個(gè)計(jì)算機(jī)的小應(yīng)用,包名為CalcTest.apk

安裝步驟:(基于Android SDK已經(jīng)配置好了環(huán)境變量,可自行百度)
1、Win + R
2、CMD
3、adb devices ? --檢查操作,列出存在的設(shè)置名稱(chēng)
4、adb ?install ?F:\Appium\CalcTest.apk ? ? --正式安裝App

測(cè)試apk下載地址:https://files.cnblogs.com/files/yyym/CalcTest.apk

Java + Selenium + Appium自動(dòng)化測(cè)試,軟件測(cè)試,技術(shù)分享,selenium,appium,測(cè)試工具

如下圖:192.168.229.101:5555就是我剛開(kāi)啟的Genymotion虛擬機(jī)

Java + Selenium + Appium自動(dòng)化測(cè)試,軟件測(cè)試,技術(shù)分享,selenium,appium,測(cè)試工具

四、安裝成功之后回到Genymotiong可以看到已經(jīng)安裝成功了

Java + Selenium + Appium自動(dòng)化測(cè)試,軟件測(cè)試,技術(shù)分享,selenium,appium,測(cè)試工具

打開(kāi)該應(yīng)用,可以看到實(shí)際是個(gè)簡(jiǎn)單的計(jì)算器

Java + Selenium + Appium自動(dòng)化測(cè)試,軟件測(cè)試,技術(shù)分享,selenium,appium,測(cè)試工具

?五、打開(kāi)Eclipse創(chuàng)建Maven項(xiàng)目并使用uiautomatorviewer工具(Android SDK工具包自帶的)進(jìn)行基本元素定位操作,元素定位方式前面我們已經(jīng)詳細(xì)講解過(guò)了。
1、打開(kāi)Android SDK可找到路徑:android-sdks\tools如下(獲取App包名可反編譯:aapt dump badging apk路徑)
Java + Selenium + Appium自動(dòng)化測(cè)試,軟件測(cè)試,技術(shù)分享,selenium,appium,測(cè)試工具

2、打開(kāi)uiautomatorviewr.bat

Java + Selenium + Appium自動(dòng)化測(cè)試,軟件測(cè)試,技術(shù)分享,selenium,appium,測(cè)試工具?3、編寫(xiě)基本代碼如下僅供參考:

package appium_demo;
 
import java.net.MalformedURLException;
 
import java.net.URL;
 
import java.util.concurrent.TimeUnit;
 
import org.openqa.selenium.By;
 
import org.openqa.selenium.remote.DesiredCapabilities;
 
import io.appium.java_client.android.AndroidDriver;
 
/** * @author 李小衛(wèi) E-mail:yyymlxw@163.com @date 創(chuàng)建時(shí)間2018年2月11日上午10:10:02 */
 
public class calc_demo {
 
    public static void main(String[] args) throws MalformedURLException {
 
        AndroidDriver driver;
 
        DesiredCapabilities des = new DesiredCapabilities();
 
  //    des.setCapability("automationName", "Appium");//Selendroid //自動(dòng)化的模式選擇
 
 //     des.setCapability("app", "C:\\software\\CalcTest.apk");//配置待測(cè)試的apk的路徑
 
//      des.setCapability("browserName", "chrome");  //h5
 
        des.setCapability("platformName", "Android");//平臺(tái)名稱(chēng)
 
        des.setCapability("platformVersion", "4.4");//手機(jī)操作系統(tǒng)版本
 
        des.setCapability("udid", "192.168.229.101:5555");//連接的物理設(shè)備的唯一設(shè)備標(biāo)識(shí)
 
        des.setCapability("deviceName", "S4");//使用的手機(jī)類(lèi)型或模擬器類(lèi)型  UDID
 
         
 
        des.setCapability("appPackage", "com.sky.jisuanji");//App安裝后的包名,注意與原來(lái)的CalcTest.apk不一樣
 
        des.setCapability("appActivity", ".JisuanjizixieActivity");//app測(cè)試人員常常要獲取activity,進(jìn)行相關(guān)測(cè)試,后續(xù)會(huì)講到
 
         
 
        des.setCapability("unicodeKeyboard", "True");//支持中文輸入
 
        des.setCapability("resetKeyboard", "True");//支持中文輸入
 
        des.setCapability("newCommandTimeout", "10");//沒(méi)有新命令時(shí)的超時(shí)時(shí)間設(shè)置
 
        des.setCapability("nosign", "True");//跳過(guò)檢查和對(duì)應(yīng)用進(jìn)行 debug 簽名的步驟
 
         
 
        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), des);//虛擬機(jī)默認(rèn)地址
 
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);//設(shè)置超時(shí)等待時(shí)間,默認(rèn)250ms
 
        driver.findElement(By.id("com.android.calculator2:id/digit1")).click();//定位'1'
 
        driver.findElement(By.id("com.android.calculator2:id/plus")).click();//定位'+'
 
        driver.findElement(By.id("com.android.calculator2:id/digit6")).click();//定位'6'
 
        driver.findElement(By.id("com.android.calculator2:id/equal")).click();//定位'='
 
    }
 
}   

??六、使用TestNG編寫(xiě)正式測(cè)試用例并開(kāi)始執(zhí)行測(cè)試了

package appium_operate;
 
import java.net.MalformedURLException;
 
import java.net.URL;
 
import java.util.concurrent.TimeUnit;
 
import org.openqa.selenium.By;
 
import org.openqa.selenium.remote.DesiredCapabilities;
 
import org.testng.Assert;
 
import org.testng.annotations.BeforeTest;
 
import org.testng.annotations.DataProvider;
 
import org.testng.annotations.Test;
 
import io.appium.java_client.android.AndroidDriver;
 
/** * @author 李小衛(wèi) E-mail:yyymlxw@163.com @date 創(chuàng)建時(shí)間2018年2月11日上午10:30:02 */
 
public class CalcTest {
 
    AndroidDriver driver;
 
    @BeforeTest
 
    public void setUp() throws MalformedURLException{
 
        DesiredCapabilities des = new DesiredCapabilities();
 
//      des.setCapability("app", "c:\\");
 
        des.setCapability("platformName", "Android");
 
        des.setCapability("platformVersion", "4.4");
 
        des.setCapability("udid", "192.168.43.101:5555");
 
        des.setCapability("deviceName", "s4");
 
        des.setCapability("appPackage", "com.android.calculator2");//com.android.contacts
 
        des.setCapability("appActivity", ".Calculator");//.activities.PeopleActivity
 
        des.setCapability("unicodeKeyboard", "True");
 
        des.setCapability("resetKeyboard", "True");
 
        des.setCapability("newCommandTimeout", "15");
 
        des.setCapability("nosign", "True");
 
        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),des);
 
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
 
    }
 
    @Test(enabled = false)
 
    public void add() {
 
        driver.findElement(By.xpath("http://android.widget.Button[@text='5']")).click();
 
        driver.findElement(By.xpath("http://android.widget.Button[@text='+']")).click();
 
        driver.findElement(By.xpath("http://android.widget.Button[@text='8']")).click();
 
        driver.findElement(By.xpath("http://android.widget.Button[@text='=']")).click();
 
        String value = driver.findElement(By.xpath("http://android.widget.EditText[@class='android.widget.EditText']")).getAttribute("text");
 
        Assert.assertEquals(value, "13");      
 
    }
 
    @Test(enabled = false)
 
    public void sub() {
 
        driver.findElement(By.xpath("http://android.widget.Button[@text='1']")).click();
 
        driver.findElement(By.xpath("http://android.widget.Button[@text='0']")).click();
 
        driver.findElement(By.xpath("http://android.widget.Button[@text='-']")).click();
 
        driver.findElement(By.xpath("http://android.widget.Button[@text='8']")).click();
 
        driver.findElement(By.xpath("http://android.widget.Button[@text='=']")).click();
 
        String value = driver.findElement(By.xpath("http://android.widget.EditText[@class='android.widget.EditText']")).getAttribute("text");
 
        Assert.assertEquals(value, "2");       
 
    }
 
    @Test(enabled = false)
 
    public void mul() {
 
        driver.findElement(By.xpath("http://android.widget.Button[@text='5']")).click();
 
        driver.findElement(By.xpath("http://android.widget.Button[@text='×']")).click();
 
        driver.findElement(By.xpath("http://android.widget.Button[@text='8']")).click();
 
        driver.findElement(By.xpath("http://android.widget.Button[@text='=']")).click();
 
        String value = driver.findElement(By.xpath("http://android.widget.EditText[@class='android.widget.EditText']")).getAttribute("text");
 
        Assert.assertEquals(value, "40");      
 
    }
 
     
 
    @DataProvider(name="testdata")
 
    public Object[][] getData(){
 
        return new Object[][]{{"20","80","100","+"},{"90","3","270","×"},{"6","2","3","÷"}};
 
    }
 
     
 
    @Test(dataProvider = "testdata")
 
    public void calcTestcase(String num1,String num2,String result,String calcType){
 
        for(char num:num1.toCharArray()){
 
            driver.findElement(By.xpath("http://android.widget.Button[@text='"+String.valueOf(num)+"']")).click();
 
        }
 
        driver.findElement(By.xpath("http://android.widget.Button[@text='"+calcType+"']")).click();
 
        for(char num:num2.toCharArray()){
 
            driver.findElement(By.xpath("http://android.widget.Button[@text='"+String.valueOf(num)+"']")).click();
 
        }
 
        driver.findElement(By.xpath("http://android.widget.Button[@text='=']")).click();
 
        String value = driver.findElement(By.xpath("http://android.widget.EditText[@class='android.widget.EditText']")).getAttribute("text");
 
        Assert.assertEquals(value, result);    
 
    }
 
}

?下面是配套學(xué)習(xí)資料,對(duì)于做【軟件測(cè)試】的朋友來(lái)說(shuō)應(yīng)該是最全面最完整的備戰(zhàn)倉(cāng)庫(kù),這個(gè)倉(cāng)庫(kù)也陪伴我走過(guò)了最艱難的路程,希望也能幫助到你!

Java + Selenium + Appium自動(dòng)化測(cè)試,軟件測(cè)試,技術(shù)分享,selenium,appium,測(cè)試工具

Java + Selenium + Appium自動(dòng)化測(cè)試,軟件測(cè)試,技術(shù)分享,selenium,appium,測(cè)試工具

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-731165.html

到了這里,關(guān)于Java + Selenium + Appium自動(dòng)化測(cè)試的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 軟件測(cè)試 -- 自動(dòng)化測(cè)試(Selenium)

    ????????在這里記錄一下? 自動(dòng)化測(cè)試 -- Selenium 的一些基礎(chǔ)知識(shí)點(diǎn),只記錄方法。 Selenium 瀏覽器操作 Selenium 元素定位(包含 Web 表單) findElement 和 findElements ????????findElement 和 findElements 都可以用于定位元素,它們都需要傳入一個(gè) By 類(lèi)型,但是他們的返回值不同,區(qū)

    2024年04月22日
    瀏覽(55)
  • 【軟件測(cè)試/自動(dòng)化測(cè)試】WebDriver+Selenium實(shí)現(xiàn)瀏覽器自動(dòng)化

    【軟件測(cè)試/自動(dòng)化測(cè)試】WebDriver+Selenium實(shí)現(xiàn)瀏覽器自動(dòng)化

    前言 使用場(chǎng)景 原理 環(huán)境準(zhǔn)備 ?開(kāi)發(fā) First Script WebDriver API 瀏覽器 元素 總結(jié) Selenium是一款可以自動(dòng)化操作瀏覽器的開(kāi)源項(xiàng)目,最初的目的是瀏覽器功能的自動(dòng)化測(cè)試,但是隨著項(xiàng)目的發(fā)展,人們根據(jù)它的特性也用來(lái)做一些更多的有意思的功能而不僅僅是UI的自動(dòng)化測(cè)試工具。

    2024年02月08日
    瀏覽(64)
  • 【軟件測(cè)試】python+selenium自動(dòng)化測(cè)試

    【軟件測(cè)試】python+selenium自動(dòng)化測(cè)試

    一、什么是自動(dòng)化測(cè)試 自動(dòng)化測(cè)試指軟件測(cè)試的自動(dòng)化,在預(yù)設(shè)狀態(tài)下運(yùn)行應(yīng)用程序或者系統(tǒng),預(yù)設(shè)條件包括正常和異常,最 后評(píng)估運(yùn)行結(jié)果。將人為驅(qū)動(dòng)的測(cè)試行為轉(zhuǎn)化為機(jī)器執(zhí)行的過(guò)程。 單元測(cè)試 java的單元測(cè)試框架是Junit,在這里不再贅述。 接口自動(dòng)化 接口測(cè)試就是

    2023年04月09日
    瀏覽(34)
  • 軟件測(cè)試 自動(dòng)化測(cè)試selenium篇(一)

    軟件測(cè)試 自動(dòng)化測(cè)試selenium篇(一)

    目錄 一、什么是自動(dòng)化測(cè)試 ?單元測(cè)試 ?接口自動(dòng)化 ?UI自動(dòng)化 二、如何實(shí)施自動(dòng)化測(cè)試 ?自動(dòng)化測(cè)試需要了解的技能 三、selenium介紹 webdriver的工作原理: ?四、Selenium+Java環(huán)境搭建 ? ? ? ? ? ? ? ? ? ?驗(yàn)證環(huán)境是否搭建成功 創(chuàng)建java項(xiàng)目,添加pom文件中添加依賴(lài) 常見(jiàn)問(wèn)題

    2024年02月07日
    瀏覽(37)
  • 軟件測(cè)試 自動(dòng)化測(cè)試selenium API

    軟件測(cè)試 自動(dòng)化測(cè)試selenium API

    1.1.1 CSS 選擇器定位元素 CSS 選擇器 就是一個(gè)語(yǔ)法 瀏覽器 (ctrl + f)可以進(jìn)行選擇 類(lèi)選擇器:.class值(.s_ipt) id 選擇器:#id值(#kw) 父類(lèi)選擇器 子類(lèi)選擇器:父類(lèi)選擇器表達(dá)式 子類(lèi)選擇器表達(dá)式 標(biāo)簽選擇器:標(biāo)簽名(form) 1.1.2 XPath 定位元素 XPath 是一種在XML 文檔中定位元

    2024年04月28日
    瀏覽(34)
  • 軟件測(cè)試(五)自動(dòng)化 selenium

    軟件測(cè)試(五)自動(dòng)化 selenium

    自動(dòng)化測(cè)試指軟件測(cè)試的自動(dòng)化,在預(yù)設(shè)狀態(tài)下運(yùn)行應(yīng)用程序或者系統(tǒng),預(yù)設(shè)條件包括正常和異常,最后評(píng)估運(yùn)行結(jié)果。將人為驅(qū)動(dòng)的測(cè)試行為轉(zhuǎn)化為機(jī)器(代碼)執(zhí)行的過(guò)程。(簡(jiǎn)單而言其實(shí)就是降低重復(fù)性的工作(大部分是Python)) 自動(dòng)化測(cè)試的具體實(shí)現(xiàn),應(yīng)該是包含下

    2024年02月08日
    瀏覽(30)
  • 阿里P8解析自動(dòng)化測(cè)試工具 —— Selenium&Appium!

    阿里P8解析自動(dòng)化測(cè)試工具 —— Selenium&Appium!

    自動(dòng)化測(cè)試,利用自動(dòng)化測(cè)試工具,通過(guò)錄制/編程方式實(shí)現(xiàn)測(cè)試活動(dòng),發(fā)現(xiàn)被測(cè)對(duì)象存在的缺陷,從而替代手工測(cè)試活動(dòng)。自動(dòng)化測(cè)試不局限于某個(gè)具體測(cè)試階段,也不局限被測(cè)對(duì)象的類(lèi)型,只要滿(mǎn)足自動(dòng)化測(cè)試的必要條件即可實(shí)施。 自動(dòng)化測(cè)試條件 自動(dòng)化測(cè)試與手工測(cè)試

    2024年04月11日
    瀏覽(33)
  • 軟件測(cè)試/測(cè)試開(kāi)發(fā)丨Selenium Web自動(dòng)化測(cè)試基本操作

    本文為霍格沃茲測(cè)試開(kāi)發(fā)學(xué)社學(xué)員學(xué)習(xí)筆記分享 原文鏈接:https://ceshiren.com/t/topic/26901 模擬功能測(cè)試中對(duì)瀏覽器的操作 get方法打開(kāi)瀏覽器 refresh方法刷新頁(yè)面 用back方法回退到上一個(gè)界面 maximize_window方法使窗口最大化 minimize_window方法使窗口最小化 標(biāo)簽: a 屬性:href 類(lèi)屬性

    2024年02月10日
    瀏覽(30)
  • python+selenium自動(dòng)化軟件測(cè)試 :多線(xiàn)程

    python+selenium自動(dòng)化軟件測(cè)試 :多線(xiàn)程

    運(yùn)行多個(gè)線(xiàn)程同時(shí)運(yùn)行幾個(gè)不同的程序類(lèi)似,但具有以下優(yōu)點(diǎn): 進(jìn)程內(nèi)共享多線(xiàn)程與主線(xiàn)程相同的數(shù)據(jù)空間,如果他們是獨(dú)立的進(jìn)程,可以共享信息或互相溝通更容易. 線(xiàn)程有時(shí)稱(chēng)為輕量級(jí)進(jìn)程,他們并不需要多大的內(nèi)存開(kāi)銷(xiāo),他們關(guān)心的不是過(guò)程便宜. 一個(gè)線(xiàn)程都有一個(gè)開(kāi)始

    2024年02月16日
    瀏覽(37)
  • 阿里P8解析自動(dòng)化測(cè)試工具 —— Selenium&;Appium(1)

    阿里P8解析自動(dòng)化測(cè)試工具 —— Selenium&;Appium(1)

    (4)測(cè)試活動(dòng)開(kāi)展初期制定自動(dòng)化測(cè)試策略; (5)有足夠的人力/財(cái)力投入 根據(jù)被測(cè)系統(tǒng)的結(jié)構(gòu)形式,目前業(yè)內(nèi)主要有兩款開(kāi)源的基于UI層面的自動(dòng)化測(cè)試工具應(yīng)用較為廣泛,一是測(cè)試Web結(jié)構(gòu)的Selenium,二是測(cè)試移動(dòng)應(yīng)用結(jié)構(gòu)的Appium。商用的自動(dòng)化測(cè)試工具則是HP公司生產(chǎn)的

    2024年04月17日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包