????4????????в??????
????orange???????????jar???????????ú???Щ?????????????orange.jar?????????????
????java -jar Orange.jar D: \config.properties
??????orange??????????????????????????????????????????????????????????????apk????????в?????????crash?????????????????????????????????????Σ??????????????????????????????????????????????
????Orange???????
????1.1  ????????APK???
???????Robotium??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????key???????????????????????
???????????
????1?????apk????е?META-INF?????
???????winrar????? winrar d ***.apk META-INF ????????????????apk????????????????????????????
???????????????????????winrar????????????????????????????winrar?????????????cmd??????????????winrar????
????(PS:?????????????java jar -xvf ???????apk?????????????????????????META-INF???????jar -cvf????apk????????????jar??????????????????????????apk???????????????????????winrar?????????)
????2?????JARSIGNER?????apk??????????key?????????????
????3?????zipalign???????????????????????
????Orange?????????bat?????
????1??bat????????????key??Orange??jar???л??????
????2??????Orange???????bat?????key????????????ú??????????temp????
????3?????java??????Process process = Runtime.getRuntime().exec( "cmd.exe /c start " + path); ???bat???
????4??bat???????????????μ?apk??????????????????????????apk??????浽???????
????1.2  ????????????????????????????apk????
???????????sdk?汾?????????????????л????в?????????????????漰???????????????????????????apk?????????
???????????
??????????Щ???????????android?????android??????????
????1??????????? android create avd --name OrangeAutoTest --target android-7 --force
???????java?е?????????????????????????????????ж????????????????????????????????????
????Process process = Runtime.getRuntime().exec(cmd);??????????cmd??????
??????????process.getInputStream() ??process.getErrorStream()????????????????????????д???????????????getErrorStream?л????
????????? ????????getErrorStream??????????????????????????????????????????????Щ???????????????????getErrorStream????????????????????Щ??????????????????
????2?????????? emulator -avd OrangeAutoTest -sdcard  c:sdcard.img
????????????????????????????????sdcard??sdcard???????mksdcard 20M c:sdcard.img??????????
????3??????????android delete avd -n OrangeAutoTest
????4?????APK adb wait-for-device install -r *.apk
????1.3  Crash?????????????????
?????????????Robotium??д???Щ???????????????????????Eclipse???ж???????????????????junit??д???testsuite????????е????????????testsuite????????ж????????????
?????????????е?????У?????????????????Crash?????μ????????????????в?????????????????
?????????????е???????????????Щ??????????????????????????????????????????????????????????????
?????????Crash????????????????????????????????????????PC??Orange????
???????????
????1?????в???????????????Orange?????????????????????????????????????????????????crash?????????????????????????????????У????????????????????
???????????Robotium??д????????е?????????????????xml????У?????????TestNG?????????????????????????Щ????????
<!-- packageName is required-->
<classes packageName="com.netease.mobile.autotest">
<class name="com.netease.mobile.autotest.testing.LoginTest">
<methods>
<include name="testLogin" />
<include name="testUnLogin" />
</methods>
</class>
</classes>
????????????????????????????????????????????е????Orange??????????xml??????????????μ??Щ????????????в???????????????????
????adb shell am instrument -e class com.netease.mobile.autotest.testing.LoginTest#testLogin -w com.netease.mobile.autotest/com.zutubi.android.junitreport.JUnitReportTestRunner
????adb shell am instrument -e class com.netease.mobile.autotest.testing.LoginTest#testUnLogin -w com.netease.mobile.autotest/com.zutubi.android.junitreport.JUnitReportTestRunner
????2??????ж???????????Crash???
??????????????Process process = Runtime.getRuntime().exec(cmd);?????????е?????????adb?????????? process.getInputStream();????????????????????????а???"shortMsg=Process crashed"??????????????????????crash???????????????????
???????????????????????????????3?ζ???crash????????crash??????д????????У??????????????Crash????????????????????
????3??????ж?????????????
?????????????JUnitReportTestRunner??????????????https://github.com/jsankey/android-junit-report????????д??????InstrumentTestRunner???????????????????????????????
?????????????н??????????????????????????λ???????????Junit-report.xml????????????adb pull ??????????????浽PC??????Orange????????????????????????а???failure????error??????????????????????????????? ????
??????????????????????????г??????????????xml????????????????????????????????????????????xml????????
????4?????????????????
??????????????????????????????????????е??????????????????xml????????????????????????????÷?????????????????д??????????????????????????????????????????浱?????ε????н????
//???????в???????????
result = e.run(testCase??   testAppPackageName);
// ???????timeout?????????????
if (result.equals(EmulatorHelper.timeOutException)) {
//??????????д???????????????????????????
if(j > runCount){
addErrorToXml(root??   testCase?? "adb shell am timeoutexception"??
beginTime??"TimeOutException");
return result;
}else{
return runTest(root?? e?? testCase??   testAppPackageName??appPackageName?? j);
}