Как запустить XCUITest, используя appium scripe
Я новичок в написании теста. в одном из наших проектов нам нужно написать XCUITestcase, который выполняется с помощью Appium на perfecto. Perfecto предоставляет отдельную команду для выполнения конкретного тестового примера, предоставляя имя тестового случая в файле config.json. ниже json, который я использую для запуска testcase.
{
"cloudURL": "mycloud.perfectomobile.com",
"securityToken": "Mysecurity Token",
"devices": [
{"deviceName" : "UDID"}
],
"appPath": "repository://PRIVATE:/<App IPA Path>",
"testAppPath": "repository://PRIVATE:/<App Runner IPA Path>",
"testMethodNames": ["ClassName#testLogin"],
"tags" : [],
"projectName" : "IOS-XCUITest",
"projectVersion" : "v10.9-test",
"jobName" : "LoginInApp",
"jobNumber" : 2,
"debug":true,
"branch" : "master",
"runUiTests": true,
"runUnitTests": false
}
Теперь, когда я выполняю команду gradle gradle perfecto-xctest
от совершенного. Perfecto Perfom ниже шага
- получить устройство по указанному в ключе устройства идентификатору
- Установить приложение по указанному пути
- Установите приложение Runner из указанного пути к тестовому приложению
- Запустить тестовый пример XCUI, заданный testMethodNames
Все работает нормально с командой gradle. Теперь мы пытаемся выполнить то же самое, используя скрипт автоматизации Appium в Java.
вот код автоматизации приложения
public class AppiumTest {
public static void main(String[] args) throws MalformedURLException, IOException {
System.out.println("Run started");
String browserName = "mobileOS";
DesiredCapabilities capabilities = new
DesiredCapabilities(browserName, "", Platform.ANY);
String host = "mycloud.perfectomobile.com";
capabilities.setCapability("user", "userEmail");
capabilities.setCapability("password", "password");
//TODO: Change your device ID
capabilities.setCapability("deviceName", "udid of device");
// Use the automationName capability to define the required framework - Appium (this is the default) or PerfectoMobile.
capabilities.setCapability("automationName", "XCUITest");
// Call this method if you want the script to share the devices with the Perfecto Lab plugin.
PerfectoLabUtils.setExecutionIdCapability(capabilities, host);
// For iOS:
capabilities.setCapability("bundleId","com.apple.test.TestAppUITests-Runner");
// Name your script
// capabilities.setCapability("scriptName", "AppiumTest");
IOSDriver driver = new IOSDriver(new URL("https://" + host + "/nexperience/perfectomobile/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
// Reporting client. For more details, see http://developers.perfectomobile.com/display/PD/Reporting
PerfectoExecutionContext perfectoExecutionContext = new PerfectoExecutionContext.PerfectoExecutionContextBuilder()
.withProject(new Project("My Project", "1.0"))
.withJob(new Job("My Job", 45))
.withContextTags("tag1")
.withWebDriver(driver)
.build();
ReportiumClient reportiumClient = new ReportiumClientFactory().createPerfectoReportiumClient(perfectoExecutionContext);
try {
reportiumClient.testStart("My test name", new TestContext("tag2", "tag3"));
driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
driver.launchApp();
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
reportiumClient.testStop(TestResultFactory.createSuccess());
} catch (Exception e) {
reportiumClient.testStop(TestResultFactory.createFailure(e.getMessage(), e));
e.printStackTrace();
} finally {
try {
driver.quit();
// Retrieve the URL to the DigitalZoom Report (= Reportium Application) for an aggregated view over the execution
String reportURL = reportiumClient.getReportUrl();
System.out.println("reportURL " + reportURL);
// Retrieve the URL to the Execution Summary PDF Report
String reportPdfUrl = (String)(driver.getCapabilities().getCapability("reportPdfUrl"));
System.out.println("reportPdfUrl " + reportURL);
// For detailed documentation on how to export the Execution Summary PDF Report, the Single Test report and other attachments such as
// video, images, device logs, vitals and network files - see http://developers.perfectomobile.com/display/PD/Exporting+the+Reports
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println("Run ended");
}
}
Когда я запускаю выше java-файла, он запускает мой бегун, но затем продолжает попытки запустить бегун. Моя проблема состоит в том, чтобы запустить мой конкретный тестовый пример, который я пишу в XCUITest. Я не знаю, какие возможности я должен установить, и какой метод нужно использовать для выполнения конкретного теста с использованием скрипта Appium. Я хочу выполнить автоматизацию с использованием XCUITestcase, и это должно начаться с использованием скрипта Appium.
Примечание:- выше скрипт appium работает нормально устройство приобретает, но я не знаю, как выполнить тестовый сценарий XCUI