1. 程式人生 > >Appium Studio 初體驗(windows做ios自動化,錄制appium腳本)

Appium Studio 初體驗(windows做ios自動化,錄制appium腳本)

直觀 minute 127.0.0.1 class not ogl 下載地址 pac 官網

偶然的機會遇到了這個工具——Appium Studio, 在官網是這麽解釋的

Get your Appium testing projects going within minutes
Install Appium Studio with a single click along with all the required development tools. Use the intuitive GUI to easily develop new tests or execute existing Appium testing projects on any local or remote devices.

讓Appium測試項目在幾分鐘內完成
只需單擊一下即可安裝Appium Studio以及所有必需的開發工具。 使用直觀的GUI輕松開發新測試或在任何本地或遠程設備上執行現有的Appium測試項目。

是一個可以錄制腳本,可以運行測試用例,它可以在windows電腦上,鏈接ios設備做ios的測試這裏為這個工具點個贊,我們測試ios應用不在用ios設備也能進行測試了。

下載地址:https://experitest.com/mobile-test-automation/appium-studio/

其他需要配置的appium測試環境。

安裝後,

技術分享圖片

大體界面就是這樣的,

我們鏈接設備,點擊技術分享圖片按鈕,增加你的設備,我鏈接了一臺安卓模擬器,一臺iphone6,(註意,adb環境可能識別不了設備,去appium studo 安裝目錄下復制adb.exe 去替換模擬器下面的adb,修改為對應的包就可以)

技術分享圖片

那麽

技術分享圖片

我們選擇安裝我們的應用,到指定設備上,也可以關閉啟動應用, 可以選擇配置,

當我們選擇後,

技術分享圖片

會給我們生成對應的腳本,我們可以切換不同的腳本

技術分享圖片

都是可以很好的切換。

那麽怎麽錄制我們的腳本呢,啟動app,

選擇技術分享圖片

錄制,

然後我們去模擬器去操作就可以

這樣就給我們操作完,點擊關閉,自動吧錄制的步驟給我們添加上去,

下面生成對應的腳本,

我們點擊保存按鈕進行保存

錄制腳本如下python版本

import unittest
import time
from appium import webdriver
from selenium.webdriver.support.ui import
WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions class sssss(unittest.TestCase): reportDirectory = reports reportFormat = xml dc = {} testName = sssss driver = None def setUp(self): self.dc[reportDirectory] = self.reportDirectory self.dc[reportFormat] = self.reportFormat self.dc[testName] = self.testName self.dc[udid] = 127.0.0.1:62001 self.dc[app] = C:\\Users\\Administrator\\AppData\\Roaming\\appiumstudio\\apk\\com.aixuetan.onlinecom.aixuetang.mobile.activities.LaunchActivity.2.apk self.dc[appPackage] = com.aixuetan.online self.dc[appActivity] = com.aixuetang.mobile.activities.LaunchActivity self.dc[instrumentApp] = true self.dc[platformName] = android self.driver = webdriver.Remote(http://localhost:4723/wd/hub,self.dc) def testsssss(self): self.driver.find_element_by_xpath("xpath=//*[@id=‘course_image‘ and (./preceding-sibling::* | ./following-sibling::*)[@text=‘高一語文通用版(全年班)‘]]").click() self.driver.find_element_by_xpath("xpath=//*[@text=‘已報名76423人‘]").click() self.driver.find_element_by_xpath("xpath=//*[@id=‘ll_enroll‘]").click() self.driver.find_element_by_xpath("xpath=//*[@text=‘03-進行更深層次的閱讀(一)——賞析評價能力的提升(上)‘]").click() self.driver.find_element_by_xpath("xpath=//*[@text=‘高一語文通用版(全年班)‘]").click() self.driver.find_element_by_xpath("xpath=//*[@id=‘course_image‘]").click() self.driver.find_element_by_xpath("xpath=//*[@id=‘course_image‘]").click() self.driver.find_element_by_xpath("xpath=//*[@id=‘course_image‘]").click() self.driver.find_element_by_xpath("xpath=//*[@text=‘已報名76423人‘]").click() self.driver.find_element_by_xpath("xpath=//*[@text=‘加入課程‘]").click() self.driver.find_element_by_xpath("xpath=//*[@id=‘et_password‘]").click() self.driver.find_element_by_xpath("xpath=//*[@id=‘et_username‘]").send_keys(1111111) self.driver.find_element_by_xpath("xpath=//*[@id=‘et_password‘]").send_keys(11111) self.driver.find_element_by_xpath("xpath=//*[@id=‘tv_login‘]").click() def tearDown(self): self.driver.quit() if __name__ == __main__: unittest.main()

java版本如下

//package <set your test package>;
import io.appium.java_client.remote.AndroidMobileCapabilityType;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import io.appium.java_client.TouchAction;
import java.time.Duration;
import io.appium.java_client.remote.MobileCapabilityType;
import io.appium.java_client.android.AndroidKeyCode;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.By;
import org.testng.annotations.*;
import java.net.URL;
import java.net.MalformedURLException;
import java.util.logging.Level;

public class sssss {
    private String reportDirectory = "reports";
    private String reportFormat = "xml";
    private String testName = "sssss";
    protected AndroidDriver<AndroidElement> driver = null;

    DesiredCapabilities dc = new DesiredCapabilities();
    
    @BeforeMethod
    public void setUp() throws MalformedURLException {
        dc.setCapability("reportDirectory", reportDirectory);
        dc.setCapability("reportFormat", reportFormat);
        dc.setCapability("testName", testName);
        dc.setCapability(MobileCapabilityType.UDID, "127.0.0.1:62001");
        dc.setCapability(MobileCapabilityType.APP, "C:\\Users\\Administrator\\AppData\\Roaming\\appiumstudio\\apk\\com.aixuetan.onlinecom.aixuetang.mobile.activities.LaunchActivity.2.apk");
        dc.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "com.aixuetan.online");
        dc.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, "com.aixuetang.mobile.activities.LaunchActivity");
        dc.setCapability("instrumentApp", true);
        driver = new AndroidDriver<>(new URL("http://localhost:4723/wd/hub"), dc);
        driver.setLogLevel(Level.INFO);
    }

    @Test
    public void testsssss() {
        driver.findElement(By.xpath("//*[@id=‘course_image‘ and (./preceding-sibling::* | ./following-sibling::*)[@text=‘高一語文通用版(全年班)‘]]")).click();
        driver.findElement(By.xpath("//*[@text=‘已報名76423人‘]")).click();
        driver.findElement(By.xpath("//*[@id=‘ll_enroll‘]")).click();
        driver.findElement(By.xpath("//*[@text=‘03-進行更深層次的閱讀(一)——賞析評價能力的提升(上)‘]")).click();
        driver.findElement(By.xpath("//*[@text=‘高一語文通用版(全年班)‘]")).click();
        driver.findElement(By.xpath("//*[@id=‘course_image‘]")).click();
        driver.findElement(By.xpath("//*[@id=‘course_image‘]")).click();
        driver.findElement(By.xpath("//*[@id=‘course_image‘]")).click();
        driver.findElement(By.xpath("//*[@text=‘已報名76423人‘]")).click();
        driver.findElement(By.xpath("//*[@text=‘加入課程‘]")).click();
        driver.findElement(By.xpath("//*[@id=‘et_password‘]")).click();
        driver.findElement(By.xpath("//*[@id=‘et_username‘]")).sendKeys("1111111");
        driver.findElement(By.xpath("//*[@id=‘et_password‘]")).sendKeys("11111");
        driver.findElement(By.xpath("//*[@id=‘tv_login‘]")).click();
    }

    @AfterMethod
    public void tearDown() {
        driver.quit();
    }
}

然後當你沒有選中測試用例步驟,他會給你註釋掉,點擊run按鈕,啟動測試,

我們可以看到log上面有日誌輸出,

運行到步驟會選中步驟,運行完,自動生成測試報告

技術分享圖片

一些重要的信息也會展示出來

技術分享圖片

還可以看到步驟的dubeg信息,每個步驟都會有截圖

技術分享圖片

技術分享圖片可以選擇最近的查看測試報告,

選擇all summaries reposrt 統計了所有運行的,直觀,

技術分享圖片

下面詳細的記錄日誌。技術分享圖片

可以錄制,可以運行現有腳本,每個步驟 都有截圖,還可以生成批量的測試報告,有沒有很簡單,關鍵它可以在windows執行ios測試,

推薦大家去嘗鮮。

Appium Studio 初體驗(windows做ios自動化,錄制appium腳本)