<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      一、把上一章的demo先看懂

      AndroidContactsTest.Java

      public class AndroidContactsTest {
      
          //Driver
          private AppiumDriver<AndroidElement> driver;
      
      
          /**
           * 配置啟動driver
           * @throws Exception
           */
          @Before
          public void setUp() throws Exception {
      
              File classpathRoot = new File(System.getProperty("user.dir"));
              //app的目錄
              File appDir = new File(classpathRoot, "/src/main/java/apps/");
              //app的名字,對應你apps目錄下的文件
              File app = new File(appDir, "ContactManager.apk");
              //創(chuàng)建Capabilities
              DesiredCapabilities capabilities = new DesiredCapabilities();
              //設置要調試的模擬器的名字
              capabilities.setCapability("deviceName","minote");
              //設置模擬器的系統(tǒng)版本
              capabilities.setCapability("platformVersion", "4.4.2");
              //設置app的路徑
              capabilities.setCapability("app", app.getAbsolutePath());
              //設置app的包名
              capabilities.setCapability("appPackage", "com.example.android.contactmanager"); 
              //設置app的啟動activity
              capabilities.setCapability("appActivity", ".ContactManager");
              //啟動driver
              driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
      
          }
      
          @After
          public void tearDown() throws Exception {
              //測試完畢,關閉driver,不關閉將會導致會話還存在,下次啟動就會報錯
              driver.quit();
          }
      
      
          /**
           * 要執(zhí)行的的測試方法
           */
          @Test
          public void addContact(){
              //利用Xpath的方法尋找text值為Add Contact的控件
              WebElement el = driver.findElement(By.xpath(".//*[@text='Add Contact']"));
              //點擊這個控件
              el.click();
              //利用類名獲取界面上所有的EditText
              List<AndroidElement> textFieldsList = driver.findElementsByClassName("android.widget.EditText");
              //第一個EditText輸入內容Some Name
              textFieldsList.get(0).sendKeys("Some Name");
              //第三個EditText輸入內容Some Name
              textFieldsList.get(2).sendKeys("Some@example.com");
              //在坐(100,500)滑動到(100,100) 時間為2毫秒
              driver.swipe(100, 500, 100, 100, 2);
              //用xpath的方式尋找到text值為Save的控件,然后點擊
              driver.findElementByXPath(".//*[@text='Save']").click();
          }
      }
      • 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
      • 51
      • 52
      • 53
      • 54
      • 55
      • 56
      • 57
      • 58
      • 59
      • 60
      • 61
      • 62
      • 63
      • 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
      • 51
      • 52
      • 53
      • 54
      • 55
      • 56
      • 57
      • 58
      • 59
      • 60
      • 61
      • 62
      • 63

      二、Selenium 是什么?

      Selenium是一套完整的web自動化測試工具集,它包含了測試的錄制(Selenium IDE)、編寫及運行(Selenium Remote Control)和測試的并行處理(Selenium Grid)、WebDriver(selenium 2.0)等。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript編寫,因此可運行于任何支持javascript的瀏覽器上。與WatiN相同,Selenium也是一款同樣使用Apache License 2.0協(xié)議發(fā)布的開源框架

      Selenium IDE 是firefox瀏覽器的一個插件。提供簡單的腳本錄制、編輯與回放功能。

      Selenium Grid 是用來對測試腳步做分布式處理。現(xiàn)在已經(jīng)集成到selenium server 中了。

      RC和WebDriver 更多應該把它看成一套規(guī)范,在這套規(guī)范里定義客戶端腳步與瀏覽器交互的協(xié)議。以及元素定位與操作的接口。

      三、WebDriver 是什么?

      其實它就是一層基礎的協(xié)議規(guī)范。

      假如說:Webdriver API(接口規(guī)范)說,我們要提供一個頁面元素id的定位方法。

      import org.openqa.selenium.*;
      import org.openqa.selenium.firefox.FirefoxDriver;//導入java版的selenium(webdriver)
      
      findElement(By.id("xx"));    //id定位方法
      • 1
      • 2
      • 3
      • 4
      • 1
      • 2
      • 3
      • 4

      四、Webdriver 如何組織和執(zhí)行用例?

      把寫好這些操作頁面元素的方法(用例)組織起來執(zhí)行并輸入測試結果,是由編程語言的單元測試框架去完成的。如java 的junit和testng單元測試框架(之后會說,替換Testng)。

      五、并行與分布式的區(qū)別

      如何并行的執(zhí)行測試用例,并行要求“同時”執(zhí)行多條用例,這個也是由編程語言的多線程技術實現(xiàn)的。

      并行可以用Selenium Grid或者Testng來實現(xiàn)。

      Selenium Grid 不是可以實現(xiàn)分布式執(zhí)行么?分布式的概念是寫好一條用例可以調用不同的平臺執(zhí)行,如 A電腦上有一個測試用例,可以調用B電腦(Linux)的Firefox瀏覽器來跑A電腦上的測試用例;也可以調用C電腦(windows)的Chrome瀏覽器來跑A電腦上的測試用例。這是分布式的概念。

      六、Appium再度了解和界面

      說了那么多,其實Appium專業(yè)做MobileApp的自動化的,selenium只能操作iOSAndroid的默認瀏覽器。

      從本質上來講,appium同樣繼承了WebDriver API的接口規(guī)范。Appium 同樣是支持多種編程語言, 然后Appium還包含了Selenium。

      so Appium是非常強大的,可用于測試原生應用,移動網(wǎng)頁應用和混合型應用,且是跨平臺的。可用于iosandroid以及firefox的操作系統(tǒng)。原生的應用是指用android或ios的sdk編寫的應用,移動網(wǎng)頁應用是指網(wǎng)頁應用,類似于ios中safari應用或者Chrome應用或者類瀏覽器的應用。混合應用是指一種包裹webview的應用,原生應用于網(wǎng)頁內容交互性的應用。 
      重要的是Appium是跨平臺的,何為跨平臺,意思就是可以針對不同的平臺用一套api來編寫測試用例。

      Appium界面

      1. Android Setting (Android設置)

      Android相關的設置,為什么要設置呢,因為這里設置主要為了不用在腳本里面添加capabilities屬性和inspector檢測使用。 
      一些意思翻譯過來就明白了,也不多說了

      這里寫圖片描述

      這里寫圖片描述

      2. General Setting (常規(guī)設置)

      服務器、日志記錄 設置。這里服務器是本機,端口是4723,這是appium的端口,不是你模擬器的端口,不要搞混了,不用修改。

      這里寫圖片描述

      這里寫圖片描述

      3. Developer Setting (開發(fā)者設置)

      這里寫圖片描述

      這里寫圖片描述

      4.About (關于)

      這沒什么好說了,主要看當前版本

      5. inspector (獲取id元素的工具)

      放大鏡工具,獲取app界面控件屬性的工具,個人認為:截屏速度快,支持元素點擊(MAC的比較屌,能記錄,滑動,搖一搖等等)。但沒有層次感,選中控件沒有提示框,屬性沒分割不好看。這里推薦使用sdk自帶的Android Device Monitor,主要是看id和布局。

      這里寫圖片描述

      還是介紹一下他的使用方法:

      1. 啟動模擬器
      2. 配置Adnroid Setting(選擇安裝包和設置設備名)
      3. 啟動Appium服務
      4. 啟動Inspector 
        點擊放大鏡打開inspector,點擊Refresh,沒安裝的話,就會安裝AnroidStting里面設置的app

      界面我都注釋了:

      這里寫圖片描述

      6.Launch the appium node server開始停止

      界面右上角的的三角按鈕

      7. 日志輸出

      中間黑色背景,是顯示日志的,這個日志有用,調試運行過程中都會輸出日志,報錯都得靠他,輸出內容有: 
      info: Appium的調試信息 
      error 出現(xiàn)錯誤時候的錯誤信息,這個很重要,解決出錯問題就看這里了

      8. clear this output log清除日志

      主界面的右下角的垃圾桶,就是清除日志的,強迫癥的點點點。

      這里寫圖片描述

      ps: 有些內容來自互聯(lián)網(wǎng)

      posted on 2017-08-28 14:42  薛土豆  閱讀(914)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 无码欧美毛片一区二区三| 毛片av在线尤物一区二区| 午夜通通国产精品福利| 国产高跟黑色丝袜在线| 日本熟妇人妻一区二区三区| 人人澡人摸人人添| 少妇人妻偷人免费观看| 亚洲人成线无码7777| 99riav精品免费视频观看| 中文日产幕无线码一区中文| 久久精品亚洲国产成人av| 天堂网亚洲综合在线| 国产精品爽爽久久久久久竹菊| 国产91精品一区二区亚洲| 精品国产女同疯狂摩擦2| 色综合热无码热国产| 91中文字幕一区在线| 长葛市| 4480yy亚洲午夜私人影院剧情| 国产免费播放一区二区三区| 亚洲全乱码精品一区二区| 青青草成人免费自拍视频| 欧美大bbbb流白水| 国产精品久久久久久福利69堂| 精品人妻中文字幕av| 欧美巨大极度另类| 美日韩不卡一区二区三区| 亚洲熟妇丰满多毛xxxx| 亚洲午夜av一区二区| 国产亚洲精品成人aa片新蒲金| 日韩中文字幕高清有码| 国产午夜精品在人线播放| 免费萌白酱国产一区二区三区| 成av人片一区二区久久| 亚洲欧美高清在线精品一区二区| 高陵县| 久久96热在精品国产高清| 精品亚洲国产成人av制服| 中文字幕在线精品国产| 久久亚洲精品人成综合网| 东京热无码av男人的天堂|