2016-08-12 4 views
1

Appium запланированного испытания (Jenkins) не дают такое журнальное сообщение:Appium Дженкинс выполнение теста заморозить

project.CardManagementTest.setUp FAILED 
    org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Cannot stop and clear com.ao.demo. Original error: Error executing adbExec. Original error: Command '/Users/administrator/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell pm clear com.ao.demo' timed out after 20000ms{"stdout":"","stderr":"","code":null} (WARNING: The server did not provide any stacktrace information) 
    Command duration or timeout: 212.78 seconds 
    Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce*****', time: '2016-06-30 19:26:09' 
    System info: host: 'macprobuild.corp.com', ip: '153.86,***.***', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.11.4', java.version: '1.8.0_73' 
    Driver info: io.appium.java_client.android.AndroidDriver 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
     at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206) 
     at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158) 
     at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678) 
     at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:51) 
     at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1) 
     at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1) 
     at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249) 
     at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131) 
     at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144) 
     at io.appium.java_client.DefaultGenericMobileDriver.<init>(DefaultGenericMobileDriver.java:47) 
     at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:114) 
     at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:132) 
     at io.appium.java_client.android.AndroidDriver.<init>(AndroidDriver.java:97) 
     at config.DesiredCapabilitiesSetup.startAppiumServer(DesiredCapabilitiesSetup.java:74) 
     at foundation.CardManagementTest.setUp(CardManagementTest.java:44) 

Странной вещь, что ее выполняющейся когда I`m перед серверной машиной. Но если я оставлю серверную машину около 30 минут и сделаю сборку удаленно, она не удастся.

Серверная машина была сконфигурирована так: -prevent компьютер для автоматического спящего режима. -wake для доступа к сети -Enable power nap.

На моем локальном компьютере проходит тест и всегда дает результат. На сервере есть некоторые тесты, запланированные для других устройств, но нет реальных устройств, подключенных к серверной машине через USB. Мой тестовый запуск на эмуляторе.

Мои Нужные Способности:

package config; 

import com.***.moo.webcalls.AOEnvironment; 
import com.***.moo.webcalls.AOWebClient; 
import io.appium.java_client.AppiumDriver; 
import io.appium.java_client.android.AndroidDriver; 
import io.appium.java_client.android.AndroidElement; 
import io.appium.java_client.remote.MobileCapabilityType; 
import io.appium.java_client.remote.MobilePlatform; 
import org.apache.commons.codec.binary.Base64; 
import org.apache.commons.io.FileUtils; 
import org.openqa.selenium.OutputType; 
import org.openqa.selenium.remote.DesiredCapabilities; 
import org.testng.annotations.BeforeClass; 

import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.util.Scanner; 
import java.util.UUID; 
import java.util.concurrent.TimeUnit; 


public class DesiredCapabilitiesSetup { 



    @BeforeClass 


    public static AndroidDriver<AndroidElement> startAppiumServer() throws IOException { 
// Taking App/Device/Link path from *txt file located in the project // 
     /* 
     String appLink = FileUtils.readFileToString(new File("appConfigurations/appLink.txt")); 
     String deviceName = FileUtils.readFileToString(new File("appConfigurations/deviceName.txt")); 
     String appName = FileUtils.readFileToString(new File("appConfigurations/appName.txt")); 
     */ 
//                // 
     String appLink = FileUtils.readFileToString(new File("appConfigurations/appLink.txt")); 
     String deviceName = FileUtils.readFileToString(new File("appConfigurations/deviceName.txt")); 
     String appName = FileUtils.readFileToString(new File("appConfigurations/appName.txt")); 



     DesiredCapabilities cap = new DesiredCapabilities(); 
     cap.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID); 
     cap.setCapability(MobileCapabilityType.DEVICE_NAME,deviceName); 
     cap.setCapability(MobileCapabilityType.VERSION,"6.0"); 
     cap.setCapability("avd","nexus"); 
     File appSource= new File(appLink); 
     File app=new File(appSource, appName); 
     cap.setCapability(MobileCapabilityType.APP, app.getAbsolutePath()); 

     AndroidDriver<AndroidElement> driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap); 
     driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS); 




     return driver; 
    } 



} 

Сейчас я Don `T понять, откуда эта проблема исходит от. It It Emulator или Adb или Jenkins или DesiredCap.

org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Cannot stop and clear com.ao.demo. Original error: Error executing adbExec. Original error: Command '/Users/administrator/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell pm clear com.ao.demo' timed out after 20000ms{"stdout":"","stderr":"","code":null} (WARNING: The server did not provide any stacktrace information) 
    Command duration or timeout: 212.78 seconds 

Настройка

@BeforeClass 
    public void setUp() throws Exception { 

     driver = DesiredCapabilitiesSetup.startAppiumServer(); 
     aoWebClient = DesiredCapabilitiesSetup.getAOWeb(); 


     LogIn logIn = new LogIn(driver,aoWebClient); 
     logIn.logIn(); 
    } 
+0

Если я подключу реальное устройство, Jenkins и Appium работают отлично. Но с эмулятором я получил эти сообщения об ошибках. –

ответ

0

--avd осуждается под возможностями appium.

public static AndroidDriver<WebElement> ANDROID_DRIVER; 
ANDROID_DRIVER = new AndroidDriver<WebElement>(serverAddress, capabilities); 

Я определяю ANDROID_DRIVER как глобальное Кроме того, могли бы вы вставить CardManagementTest.setUp код?

+0

Я добавил настройку к описанию. Он работает полностью на реальном устройстве, подключенном к серверной машине. Но когда i't настроен на запуск эмулятора, он может успешно выполняться 6 раз подряд и после сбоя 2-3 раза из-за проблемы с эмулятором. Возможно, проблема возникает из-за того, что процесс эмуляции не убивается после выполнения каждого набора тестов? –

Смежные вопросы