Я новичок в написании теста.в одном из наших проектов нам нужно написать 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.Perfecto perfom ниже шага
- получить устройство по udid, указанному в ключе устройства
- Установить приложение из указанного пути приложения
- Установить приложение 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