Appium的Android测试用例

时间:2015-05-28 07:04:17

标签: java android eclipse coded-ui-tests appium

有没有人知道如何使用Eclipse在Windows上运行Appium Testcase。

我的问题是。如何运行已安装在我的Android设备上的.apk的测试用例。

因为我正在使用的示例,所以每次运行测试用例时都会安装apk。

@Before
public void setUp() throws Exception {

    File appDir = new File("src/Test");
    File app = new File(appDir, "MyTest.apk");
    DesiredCapabilities capabilities = new DesiredCapabilities();

    capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, ""); //Name of mobile web browser to automate. Should be an empty string if automating an app instead.
    capabilities.setCapability(MobileCapabilityType.VERSION, "4.4");
    capabilities.setCapability(MobileCapabilityType.PLATFORM, "Android");
    capabilities.setCapability("app-package", "com.TuneBox.Rokki");
    capabilities.setCapability("app-activity", ".MyTest");

    capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android");
    capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
    driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

}

1 个答案:

答案 0 :(得分:0)

确保您的应用已安装在设备上 - 否则您将收到

<script>
    var overlay;
    testOverlay.prototype = new google.maps.OverlayView();

    function initialize() {
        var mapOptions = {
            zoom: 11,
            center: new google.maps.LatLng(40.743388, -74.007592),
            mapTypeId: google.maps.MapTypeId.SATELLITE
        };

        var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
        var swBound = new google.maps.LatLng(40.73660837340877, -74.01852328);
        var neBound = new google.maps.LatLng(40.75214181, -73.99661518216243);
        var bounds = new google.maps.LatLngBounds(swBound, neBound);

        var srcImage = 'test.png';
        overlay = new testOverlay(bounds, srcImage, map);
    }

    function testOverlay(bounds, image, map) {
        this.bounds_ = bounds;
        this.image_ = image;
        this.map_ = map;
        this.div_ = null;
        this.setMap(map);
    }

    testOverlay.prototype.onAdd = function () {
        var div = document.createElement('div');
        div.style.borderStyle = 'none';
        div.style.borderWidth = '0px';
        div.style.position = 'absolute';

        var img = document.createElement('img');
        img.src = this.image_;
        img.style.width = '100%';
        img.style.height = '100%';
        img.style.opacity = '0.5';
        img.style.position = 'absolute';
        div.appendChild(img);
        this.div_ = div;

        var panes = this.getPanes();
        panes.overlayLayer.appendChild(div);
    };

    testOverlay.prototype.draw = function () {
        var overlayProjection = this.getProjection();
        var sw = overlayProjection.fromLatLngToDivPixel(this.bounds_.getSouthWest());
        var ne = overlayProjection.fromLatLngToDivPixel(this.bounds_.getNorthEast());
        var div = this.div_;

        div.style.left = sw.x + 'px';
        div.style.top = ne.y + 'px';
        div.style.width = (ne.x - sw.x) + 'px';
        div.style.height = (sw.y - ne.y) + 'px';
    };

    testOverlay.prototype.updateBounds = function (bounds) {
        this.bounds_ = bounds;
        this.draw();
    };

    testOverlay.prototype.onRemove = function () {
        this.div_.parentNode.removeChild(this.div_);
        this.div_ = null;
    };

    google.maps.event.addDomListener(window, 'load', initialize);
</script>

然后从代码中删除org.openqa.selenium.SessionNotCreatedException: A new session could not be created. (Original error: Activity used to start app doesn't exist or cannot be launched! Make sure it exists and is a launchable activity) (WARNING: The server did not provide any stacktrace information) 功能。 Appium将启动之前安装的应用程序。