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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

硒测试中所需的功能和示例

發布時間:2023/12/3 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 硒测试中所需的功能和示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

所需功能是用于聲明一組基本要求(例如瀏覽器,操作系統,瀏覽器版本等的組合)的類,以對Web應用程序執行自動跨瀏覽器測試。

當我們嘗試通過Selenium自動化測試來自動化測試腳本時,我們需要考慮這些組合,以聲明一個特定的測試環境,在該環境下,我們的網站或Web應用程序應無縫呈現。

這些環境可以是移動設備,移動瀏覽器,桌面設備,桌面瀏覽器,屏幕分辨率等。要在我們的Selenium自動化測試腳本中聲明這些環境,我們在Selenium測試或Appium測試中使用了所需功能,而這正是我們將在本文中討論。

我將幫助您熟悉硒測試中的所需功能和Appium的所需功能。 我將通過示例向您展示它們的含義,它們如何用于Selenium自動化測試和Appium測試。 事不宜遲,讓我們開始吧。

什么是所需功能?

所需功能類是org.openqa.selenium.remote.DesiredCapabilities包的組件。 它有助于Selenium WebDriver設置瀏覽器的屬性。 因此,使用與Desired Capabilities類不同的功能,我們可以設置瀏覽器的屬性。 例如,瀏覽器的名稱,瀏覽器的版本等。我們將這些功能用作鍵值對,以便為瀏覽器設置它們。

您可以參考github庫以獲得所需的功能的所有詳細方法等。

在進行Selenium自動化測試時,我們在執行時總是有不同的要求,特別是要執行哪個瀏覽器,用于測試執行的操作系統和版本,這在Selenium Grid上對Desired Capabilities有很大幫助。

要在使用Grid的Selenium自動化測試中聲明所需功能,我們可以使用DesiredCapabilities類中的setCapability方法來設置瀏覽器的不同類型的功能(例如Chrome,IE,Firefox,Edge)平臺名稱(例如Windows,macOS)等)。

設置Selenium網格以在不同的瀏覽器中并行執行

Appium中的所需功能在移動應用程序自動化的情況下非常有用,在這種情況下,我們必須在不同的瀏覽器屬性和設備屬性上執行測試自動化 ,可以使用“所需功能”類進行設置。 為了對不同類型的移動設備,iOS,Android等不同類型的移動平臺進行自動化測試 。此外,可以有不同的平臺(操作系統)版本,例如Android 9.x,10.x和iOS 12 .x,13.x等,我們可以根據需要使用Appium for Android或iOS中的“所需功能”來設置這些屬性。

硒和砷還有更多所需功能

通過使用Desired Capabilities類,我們向WebDriver指示了有關環境,例如瀏覽器名稱,瀏覽器版本,平臺等,我們將使用自動化腳本在該環境上執行自動化瀏覽器測試 。 但這不是我們使用Desired Capabilities類所能做的。 我們還可以配置瀏覽器特定的首選項,例如啟用chrome選項,firefox選項,使用隱身模式進行測試,甚至禁用javascript等。

使用禁用JavaScript設置進行Selenium自動化測試

如果您使用的是基于云的在線Selenium網格 ,那么Desired Capabilities類也可以用于與Selenium或Appium進行并行測試,使用Selenium 測試本地托管的Web應用程序 ,生成按命令的屏幕截圖,甚至是視頻通過不同的瀏覽器和OS配置記錄整個測試自動化執行情況。

所需能力方法的類型

現在,讓我們討論所需功能類中可用的不同方法,以在測試自動化中設置不同的屬性。

public java.lang.Object getCapability(java.lang.String capabilityName)

類Desired Capabilities中的getCapability()方法,該方法可用于獲取我們正在使用的當前系統的功能。

public java.lang.Object getCapability(java.lang.String capabilityName)

該類來自Desired Capabilities的setCapability()方法可用于設置設備名稱,平臺名稱,平臺版本,被測應用程序的絕對路徑,應用程序活動(在移動自動化中),應用程序包( Java)等

public java.lang.String getBrowserName()

類Desired Capabilities中的getBrowserName()方法可用于獲取瀏覽器的名稱。

public void setBrowserName(java.lang.String browserName)

類Desired Capabilities中的setBrowserName()方法可用于設置瀏覽器的名稱。

public java.lang.String getVersion()

類Desired Capabilities中的getVersion()方法可用于獲取瀏覽器或平臺的版本。

public void setVersion(java.lang.String version)

類Desired Capabilities中的setVersion()方法可用于設置瀏覽器或平臺的版本。

public Platform getPlatform()

類Desired Capabilities中的getPlatform()方法可用于獲取平臺的詳細信息。

public Platform setPlatform()

類Desired Capabilities中的setPlatform()方法可用于設置平臺的詳細信息。

有關更多信息,您可以參考Selenium文檔 。

針對不同瀏覽器進行硒測試所需的功能

在上一節中,我們看到了所需功能類的不同方法。 現在,讓我們討論如何為不同的瀏覽器設置不同的功能。

Selenium WebDriver for Chrome中所需的功能

當我們要自定義和配置Selenium WebDriver for Chrome中的所需功能時,我們需要調用ChromeDriver會話以利用這些功能。 因此,讓我們討論一下ChromeDriver支持的功能,以及如何使用它們在Selenium Webdriver for Chrome中設置所需的功能。

有兩種方法可以設置ChromeDriver的功能。

1. ChromeOptions

2.所需功能

ChromeOptions是另一類,可以與Selenium WebDriver for Chrome中的所需功能結合使用,以自定義或操縱Chrome瀏覽器的各種屬性。
以下是ChromeOptions類的常用參數

Disable-infobars:用于防止chrome瀏覽器顯示諸如“ Chrome由自動化軟件控制”之類的通知。

Make-default-browser:用于將chrome瀏覽器設置為默認瀏覽器。

Disable-popup-blocking:禁用chrome瀏覽器中顯示的彈出窗口。

隱身模式以隱身模式打開Chrome瀏覽器

start -maximized:以最大化模式打開Chrome瀏覽器

無頭:用于以無頭模式打開Chrome瀏覽器。

現在,讓我們討論一個廣告攔截器的示例,其中將Chrome Option與Desired Capabilities類結合使用。 為此,我們將使用adblocker擴展程序。
前提條件是應下載擴展名的crx文件

//Setting up capabilities to run our test script ChromeOptions opt = new ChromeOptions();opt.addExtensions(new File(“path for crx file of the extension”));DesiredCapabilities capabilities = new DesiredCapabilities();capabilities.setCapability(ChromeOptions.CAPABILITY, options);ChromeDriver driver = new ChromeDriver(capabilities);

Selenium WebDriver for Firefox中所需的功能

就像我們在Chrome瀏覽器中看到的那樣,還有一些方法可以自定義Firefox瀏覽器的Selenium WebDriver中的所需功能。

moz:firefoxOptions功能專門用于Firefox瀏覽器。 我們可以使用moz:firefoxOptions來自定義或操縱Firefox瀏覽器的不同屬性,這有助于我們控制Firefox瀏覽器的行為。 它通常作為兩者之一的成員被調用,一個是來自alwaysMatch ,另一個是來自firstMatch條目。

moz:firefoxOptions可以包含以下內容,這些內容可以控制Firefox瀏覽器的啟動或運行方式。

a)binary(String):我們提供供自定義Firefox二進制文件使用的絕對路徑。 通常,GeckoDriver(我們用于Firefox的驅動程序)會嘗試查找Firefox在當前系統上的位置(如果未定義)。

b)args(字符串數組):此參數用于將命令行參數傳遞給Firefox二進制文件。 使用此語法時,應包含連字符/連字符,例如[“ -profile”]。
因此,要通過GeckoDriver提取現有配置文件,我們應該使用如下語法
[“-個人資料”,“個人資料的路徑”]

c)profile(string):我們可以提供目錄的路徑,以便可以使用Firefox實例。 要安裝某些firefox擴展名或某些自定義證書,我們可以使用它。 雖然建議在我們要設置自定義首選項的同時使用首選項,而不要直接傳遞配置文件。 您可以在下面找到其他偏好的示例。

這是在Firefox的Selenium WebDriver中聲明所需功能的示例。

{"capabilities": {"alwaysMatch": {"moz:firefoxOptions": {"binary": "/usr/local/firefox/bin/firefox","args": ["-headless", "-profile", "/path/to/my/profile"],"prefs": {"dom.ipc.processCount": 9,"javascript.options.showInConsole": true},"log": {"level": "trace"}}}}} if(driverParameter == null || driverParameter.equalsIgnoreCase(FIREFOX)) {DesiredCapabilities capabilities = DesiredCapabilities.firefox();FirefoxOptions options = new FirefoxOptions();options.setHeadless(headless);capabilities.merge(options); }

IE(Internet Explorer)的Selenium WebDriver中所需的功能

現在,讓我們繼續使用Selenium WebDriver for IE(Internet Explorer)中的所需功能。 對于IE,我們使用Selenium WebDriver中具有所需功能InternetExplorerOptions 。

這是在Selenium WebDriver for IE中聲明所需功能的示例。

if(driverParameter == null || driverParameter.equalsIgnoreCase(IE)) {DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();InternetExplorerOptions option = new InternetExplorerOptions();option.setHeadless(headless);capabilities.merge(option); }

我們幾乎沒有可以使用的Internet Explorer特定功能,讓我們一一討論。

a)ignoreZoomSetting(boolean):此功能可用于忽略對瀏覽器的縮放級別達到100%的檢查。 默認情況下,它設置為false。 它需要一個布爾值作為輸入。

b)initialBrowserUrl(string):使用此功能,我們可以確定初始URL,在Internet Explorer瀏覽器啟動時應重定向到的初始網站。 它以字符串作為輸入。

c)enableElementCacheCleanup(boolean):此功能提供對元素緩存中過時元素的檢查。 如果找到它們,該功能將指示WebDriver進行清理。 它需要一個布爾值作為輸入。

d)requireWindowFocus(boolean):此功能用于指示驅動程序在執行任何操作(如鼠標或鍵盤事件等)之前檢查Internet Explorer窗口是否具有焦點。它采用布爾值作為輸入,默認情況下,它是設為假。

e)ignoreProtectedModeSettings(boolean):如果您希望在執行Selenium自動化測試時跳過保護模式檢查,則可以利用此功能。 它需要一個布爾值作為輸入。

因此,這些是我們可以使用的某些Internet Explorer特定功能。

不同語言的硒測試中所需功能的示例

現在,我將向您演示如何在使用不同語言的Selenium測試中利用所需功能。 您可能已經知道,Selenium自動化測試受多種編程語言支持。 它為每種主要編程語言(例如JavaScript,C#,Python,Java,Ruby,PHP)提供綁定。 為了讓您了解如何在Selenium測試中利用所需的功能,我將提供Java,C#和Python的示例。

Selenium WebDriver for Java中所需的功能

//Setting up capabilities to run our test script@BeforeClasspublic void setUp() throws Exception {DesiredCapabilities capabilities = new DesiredCapabilities();capabilities.setCapability("browserName", "chrome");capabilities.setCapability("version", "77.0");capabilities.setCapability("platform", "win10"); // If this cap isn't specified, it will just get any available onecapabilities.setCapability("build", "LambdaTestSampleApp");capabilities.setCapability("name", "LambdaTestJavaSample");capabilities.setCapability("network", true); // To enable network logscapabilities.setCapability("visual", true); // To enable step by step screenshotcapabilities.setCapability("video", true); // To enable video recordingcapabilities.setCapability("console", true); // To capture console logscapabilities.setCapability("selenium_version","4.0.0-alpha-2");capabilities.setCapability("timezone","UTC+05:30");capabilities.setCapability("geoLocation","IN");capabilities.setCapability("chrome.driver","78.0");try {driver = new RemoteWebDriver(new URL("https://" + username + ":" + accesskey + gridURL), capabilities);} catch (MalformedURLException e) {System.out.println("Invalid grid URL");} catch (Exception e) {System.out.println(e.getMessage());}}

Selenium WebDriver for C#所需的功能

//Accept all certificates Chrome DesiredCapabilities capability = DesiredCapabilities.Chrome(); Environment.SetEnvironmentVariable("webdriver.chrome.driver", "Path to ChromeDriver.exe"); capability.SetCapability(CapabilityType.AcceptSslCertificates, true); IWebDriver driver = new RemoteWebDriver(capability);//Set Chrome options. ChromeOptions options = new ChromeOptions(); DesiredCapabilities dc = DesiredCapabilities.Chrome(); dc.SetCapability(ChromeOptions.Capability, options); IWebDriver driver = new RemoteWebDriver(dc);//Turn off the JavaScript Firefox FirefoxProfileManager profileManager = new FirefoxProfileManager(); FirefoxProfile profile = profileManager.GetProfile("TestProfile"); profile.SetPreference("javascript.enabled", false); IWebDriver driver = new FirefoxDriver(profile);//Set the default page load timeout driver.Manage().Timeouts().SetPageLoadTimeout(new TimeSpan(10));//Start Firefox with plugins FirefoxProfile prof = new FirefoxProfile(); profile.AddExtension(@"C:Location of extension.xpi"); IWebDriver driver = new FirefoxDriver(prof);//Start Chrome with an unpacked extension ChromeOptions options = new ChromeOptions(); options.AddArguments("load-extension=/pathTo/extension"); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.SetCapability(ChromeOptions.Capability, options); DesiredCapabilities dc = DesiredCapabilities.Chrome(); dc.SetCapability(ChromeOptions.Capability, options); IWebDriver driver = new RemoteWebDriver(dc);//Start Chrome with a packed extension ChromeOptions options = new ChromeOptions(); options.AddExtension(Path.GetFullPath("localpathto/extension.crx")); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.SetCapability(ChromeOptions.Capability, options); DesiredCapabilities dc = DesiredCapabilities.Chrome(); dc.SetCapability(ChromeOptions.Capability, options); IWebDriver driver = new RemoteWebDriver(dc);

Selenium WebDriver for Python中所需的功能

def _get_desired_capabilities():""""""platform = _TEST_SETTINGS['PLATFORM']browser = _TEST_SETTINGS['BROWSER']version = _TEST_SETTINGS['VERSION']if platform and browser:capabilities = {'platform': platform,'browserName': browser,'version': version,}elif browser.lower() == 'firefox':capabilities = DesiredCapabilities.FIREFOXelse:capabilities = DesiredCapabilities.CHROMEreturn _add_travis_info(capabilities)def run_browser(self,os_name,os_version,browser,browser_version):USERNAME = ‘test.lambdatest@gmail.com’PASSWORD = ‘Test123’if browser.lower() == 'ff' or browser.lower() == 'firefox':desired_capabilities = DesiredCapabilities.FIREFOX elif browser.lower() == 'ie':desired_capabilities = DesiredCapabilities.INTERNETEXPLORERelif browser.lower() == 'chrome':desired_capabilities = DesiredCapabilities.CHROME elif browser.lower() == 'opera':desired_capabilities = DesiredCapabilities.OPERA elif browser.lower() == 'safari':desired_capabilities = DesiredCapabilities.SAFARIdesired_capabilities['os'] = os_namedesired_capabilities['os_version'] = os_versiondesired_capabilities['browser_version'] = browser_versionreturn webdriver.Remote(RemoteConnection("http://%s:%s@hub-cloud.browser.com/wd/hub"%(USERNAME,PASSWORD),resolve_ip= False),desired_capabilities=desired_capabilities)

使用LambdaTest Capabilities Generator設置硒功能

Lambdatest是基于云的跨瀏覽器測試工具,可讓您在包含2000多種實際瀏覽器的在線Selenium Grid上執行Selenium自動化測試。 Selenium支持的所有語言和框架都與LambdaTest兼容。

您還將獲得與眾多第三方CI / CD工具,項目管理工具,協作工具等的集成。

作為在線Selenium網格即服務提供商,我們了解DesiredCapabilities在您的Selenium自動化測試體驗中的重要性。 我們還了解到,每次要在數百種瀏覽器和操作系統組合上運行測試時,寫下您所需的功能可能要花費大量時間。 這就是為什么我們提供了一個在線DesiredCapabilities 生成器的原因 ,該生成器根據您的點擊選擇為您提供了多種編程語言的DesiredCapabilities類。

因此,當我們使用上述URL從LambdaTest導航到功能生成器時,您將看到如下屏幕

正如我們在上面的屏幕快照中看到的那樣,我們可以選擇我們要在測試腳本中使用的屬性,并在選擇所需的信息后生成所需的功能。
以下屏幕顯示了生成的功能,我們可以在測試腳本中直接使用這些功能。

您是否注意到我們在Selenium 4中使用了所需功能? 如果看上面的圖片,您會發現在Selenium 4標簽下的下拉菜單中進行了點擊選擇。

LambdaTest功能生成器上的Selenium 4所需功能

使用LambdaTest作為在線Selenium Grid的另一個好處是。 您將獲得最新的瀏覽器,瀏覽器版本以及在我們的云服務器上托管的計算機上預安裝的操作系統。 那還不是全部! 您還將獲得最新的Selenium 4所需的功能,所有這些功能都可以在您的自動瀏覽器測試腳本中啟動。

在硒測試中結合了所需功能的示例腳本

現在,讓我們以一個簡單的例子來演示如何在Selenium自動化測試腳本中適合這些所需的功能。 因此,當我們準備好生成所需的所需功能時,我們已在以下測試腳本中使用了該腳本,該腳本可在多個瀏覽器上執行,以使用LambdaTest提供的Selenium Grid在2000多種真實瀏覽器上執行跨瀏覽器測試。

自動化腳本示例:

package com.lambdatest;//TestNG Todo : Sample App import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.Platform; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Parameters; import org.testng.annotations.Test; import org.testng.asserts.Assertion;import com.beust.jcommander.Parameter;import java.net.MalformedURLException; import java.net.URL; import java.util.Set; import java.util.concurrent.TimeUnit;public class Test2{public String username = "Your_LambdaTest_Username";public String accesskey = "Your_LambdaTest_Access_Key";public static RemoteWebDriver driver = null;public String gridURL = "@hub.lambdatest.com/wd/hub";boolean status = false;//Setting up capabilities to run our test script@Parameters(value= {"browser","version"})@BeforeClasspublic void setUp(String browser, String version) throws Exception {DesiredCapabilities capabilities = new DesiredCapabilities();capabilities.setCapability("browserName", browser);capabilities.setCapability("version", version);capabilities.setCapability("platform", "win10"); // If this cap isn't specified, it will just get the any available onecapabilities.setCapability("build", "LambdaTestSampleApp");capabilities.setCapability("name", "LambdaTestJavaSample");capabilities.setCapability("network", true); // To enable network logscapabilities.setCapability("visual", true); // To enable step by step screenshotcapabilities.setCapability("video", true); // To enable video recordingcapabilities.setCapability("console", true); // To capture console logscapabilities.setCapability("selenium_version","4.0.0-alpha-2");capabilities.setCapability("timezone","UTC+05:30");capabilities.setCapability("geoLocation","IN");capabilities.setCapability("chrome.driver","78.0");try {driver = new RemoteWebDriver(new URL("https://" + username + ":" + accesskey + gridURL), capabilities);} catch (MalformedURLException e) {System.out.println("Invalid grid URL");} catch (Exception e) {System.out.println(e.getMessage());}}//Opening browser with the given URL and navigate to Registration Page@BeforeMethodpublic void openBrowser(){// driver.manage().deleteAllCookies();driver.get("https://www.lambdatest.com/");driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);driver.manage().timeouts().pageLoadTimeout(15, TimeUnit.SECONDS);WebElement signUpButton = driver.findElement(By.xpath("//a[contains(text(),'Start Free Testing')]"));signUpButton.click(); }//Verifying elements on Registration page@Testpublic void verifyElementsOnPageTest(){WebElement lambdaTestLogo = driver.findElement(By.xpath("//p[@class='signup-titel']"));lambdaTestLogo.isDisplayed();WebElement signUpTitle = driver.findElement(By.xpath("//p[@class='signup-titel']"));signUpTitle.isDisplayed();WebElement termsText = driver.findElement(By.xpath("//label[@class='woo']"));termsText.isDisplayed();WebElement loginLinkText = driver.findElement(By.xpath("//p[@class='login-in-link test-left']"));loginLinkText.isDisplayed();} // Closing the browser session after completing each test case@AfterClasspublic void tearDown() throws Exception {if (driver != null) {((JavascriptExecutor) driver).executeScript("lambda-status=" + status);driver.quit();}} }<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"> <suite thread-count="3" name="LambaTestSuite" parallel="tests"><test name="ChromeTest"><parameter name="browser" value="chrome"/><parameter name="version" value="77.0"/><classes><class name="com.lambdatest.Test2"/></classes></test> <!-- Test --></suite> <!-- Suite -->

LambdaTest自動化儀表板上的輸出

在LambdaTest的在線Selenium Grid上執行上述腳本后,我們通過LambdaTest上的自動化儀表板獲得以下自動化日志。 您可以在自動化儀表盤下獲得不同類型的日志,例如網絡日志,命令日志,元數據,視頻記錄,屏幕截圖等。在下面的屏幕截圖中,我希望您關注LambdaTest提供的原始硒日志。

您會注意到,自動化腳本中聲明的功能顯示在此處。

Appium中用于移動自動化的所需功能

到現在為止,我們已經看到了所需的功能,這些功能具有不同的語言,瀏覽器和可用的不同方法。 我希望到目前為止,您對如何在Selenium自動化測試中使用所需功能有了一個好主意。 但是,Selenium自動化測試只能確保您的Web應用程序適用于臺式機設備,但是您的客戶可能正在使用他們的手機訪問您的Web應用程序或網站,尤其是您的博客頁面。

我們生活在移動優先時代。 桌面上進行的自動瀏覽器測試不能確保您的網站與跨瀏覽器兼容 。 幾乎每個企業都在向數字化發展,因此它要求網站或Web應用程序同時支持臺式機和移動設備。 這意味著您可能還必須通過移動瀏覽器執行自動瀏覽器測試!

那么,我們如何為移動瀏覽器執行自動化瀏覽器測試? 好消息是,還有另一個引人注目的開源框架可以幫助您實現這一目標,它被稱為Appium。

現在,我們將討論Appium測試,以及如何在Appium中使用所需的功能。

因此,對平臺或操作系統(例如Android,iOS),平臺版本,設備等可能會有不同的要求,這些要求與我們在進行Web應用程序自動化時的要求相似。 這是Appium所需功能在移動Web應用程序的自動瀏覽器測試中發揮作用的地方。

Appium測試中所需功能的示例

當請求新的自動化會話時,Appium客戶端將請求與JSON對象一起發送給服務器,該JSON對象包括鍵和值對形式的所需功能。

使用JSON對象中的這些鍵和值,我們提供決定和指導appium驅動程序有關我們希望我們的移動自動化測試如何工作的方式。

然后,可以在Appium服務器中設置所需功能,或者我們也可以在Webdriver測試腳本中添加所需功能。

以下是使用JSON對象進行Appium測試所需功能的示例:

{“platformName”: “Android”,“platformVersion”: “10.0”,“deviceName”: “Samsung Galaxy s10”,“automationName”: “Appium”,“app”: “path for the app under test” }

因此,在通過JSON對象進行Appium測試中使用以上期望的功能時,我們指示驅動程序使用Appium在具有給定文件位置的應用程序上在Android版本10.0的設備Samsung Galaxy s10上啟動移動自動化會話。

Appium支持不同的所需功能,其中某些功能是所有平臺或驅動程序共有的,而某些功能是特定于驅動程序或平臺的。 在繼續進行時,讓我們討論其中的一些。

Appium測試中的常規或標準所需功能

  • automationName:使用此功能,我們可以指導驅動程序應該使用哪個自動化引擎。 默認情況下,它設置為Appium。 其他可用的引擎,例如Appium,Espresso(兩者均適用于android),XCUITest(適用于iOS)
  • platformName:我們可以使用它來指導有關移動操作系統平臺(如iOS,Android等)的信息。
  • platformVersion :我們可以使用它來提及期望在其上執行測試的移動操作系統版本。
  • deviceName:我們可以使用它來指定要在其上執行自動化瀏覽器測試的特定移動設備。 就像我們在上面的示例中使用Samsung Galaxy s10一樣。
  • app:此功能用于提供需要使用腳本進行測試的應用程序的路徑。 在這里,我們提供帶有HTTP URL的絕對本地路徑或遠程路徑。
  • browserName:當我們要在移動Web瀏覽器上執行測試時,可以使用此名稱。 我們可以提供瀏覽器的名稱,例如iOS的Safari,Android的Chrome等。當我們要使應用程序自動化而不使用瀏覽器時,可以將其保留為空。
  • 語言:可用于設置Android或iOS的語言。
  • newCommandTimeout:此功能有助于指示驅動程序其在結束空閑會話之前必須等待來自客戶端的新命令的時間。
  • 幾乎沒有其他常規功能,例如noReset,fullReset,eventTimings等。

    適用于Android的Appium中所需的功能

  • appActivity:使用此功能可以聲明要從包中啟動的Android活動的名稱。 例如.MainActivity,.Settings
  • appPackage:使用此功能,我們確定要執行的Android應用程序的JAva軟件包。 默認情況下,程序包清單提供此功能。
    例如com.example.android.testApp
  • appWaitActity:此功能提供我們要等待的android活動的名稱。
  • appWaitPackage:這提供了我們要等待的android應用程序的java包。
  • appWaitDuration:此功能用于指示等待等待的毫秒數以啟動appWaitActivity。
  • deviceReadyTimeout:當驅動程序等待被測設備準備就緒時,此功能指示以秒為單位的超時時間。
  • 除了上述android功能外,還有其他一些功能,例如adbPort,systemPort,remoteAdbHost,androidInstallPath等。

    適用于iOS的Appium中所需的功能

  • calendarFormat:此功能可用于設置iOS模擬器的日歷格式。 例如格里高利安
  • launchTimeout:此功能指示驅動程序必須等待的時間(以毫秒為單位),之后該時間將會話視為失敗或掛起。
  • autoAcceptAlerts; 此功能用于接受所有iOS警報,如果它們在執行自動瀏覽器測試時彈出。 例如:隱私訪問權限警報,例如位置,聯系人等。
  • autoDismissAlerts:此功能用于在執行自動瀏覽器測試時彈出所有iOS警報時拒絕/關閉它們。 例如:隱私訪問權限警報,例如位置,聯系人等。
  • safariInitialUrl:使用此功能,我們可以為safari瀏覽器設置初始URL,因此在啟動瀏覽器時,它可以用作歡迎頁面。
  • appName:此功能用于顯示正在測試的應用程序的名稱。
  • 除了上述iOS功能之外,safariAllowPopups, customSSLCert等還很少。

    因此,我們已經看到了期望的功能,可以在使用不同瀏覽器,不同語言的示例創建測試時使用這些功能,并且還針對具有不同平臺/操作系統的Ap??pium進行了討論。

    LambdaTest功能生成器在Appium中提供所需的功能

    LambdaTest所需功能生成器現在也提供了Appium功能。 它們可以在Appium標簽下找到。 您可以在Android和iOS瀏覽器上進行測試,以確保您的Web應用程序能夠正常運行。

    我們學到了什么

    在執行Selenium自動化測試時,我們需要聲明一組有關測試環境的基本要求,例如特定的瀏覽器,操作系統等。 這可以通過Selenium測試和Appium測試的Desired Capabilities類來實現。

    我們還可以指定執行測試所需的條件,例如本地托管的測試,并行測試,禁用JavaScript的測試等等。

    如果您已經通過我們的“所需功能生成器”使用LambdaTest,則可以輕松生成此“所需功能”類,該生成器會根據下拉菜單中的測試要求為您提供該類。

    如果您希望執行Selenium自動化測試以確保進行更廣泛的瀏覽器兼容性測試,那么LambdaTest是所有最新瀏覽器,操作系統,Selenium版本的首選存儲。 測試愉快! 🙂


    翻譯自: https://www.javacodegeeks.com/2019/12/desired-capabilities-in-selenium-testing-with-examples.html

    總結

    以上是生活随笔為你收集整理的硒测试中所需的功能和示例的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。