zoukankan      html  css  js  c++  java
  • Android WebDriver 浏览器自动测试工具介绍

    Selenium WebDriver 是浏览器自动测试工具,提供轻量级和优雅的方式来测试web应用。Selenium WebDriver作为Android SDK extra,支持Android 2.3(Gb)及向前版本。

    WebDriver是端对端的测试,可以真实测试用户行为,用户交互如触摸、手指滚动、长按等,还支持HTML5的一些特性,比如本地存储、session存储、应用缓存等。这些测试作为Android tests project的一部分,基于Junit。可以从Eclipse加载或者是通过命令行。WebDriver可以运行在手机、平板、平板模拟器或者真实的设备上。一旦启动,WebDriver打开一个WebView配置类似Android浏览器,并运行测试。

    WebDriver 是个Android SDK extra ,可以通过这些指导来安装。并在Slenium站点上也有用户指南

    附简单示例,如下:

    创建Android 项目,包含无布局的空的Activity

    1 public class SimpleAppActivity extends Activity {
    2     @Override
    3     public void onCreate(Bundle savedInstanceState) {
    4         super.onCreate(savedInstanceState);
    5     }
    6 }

    创建Android 测试项目。WebDriver将创建WebView,在主Activity中自动设置布局。下面是在Android 上打开Google首页,查询“洛杉矶天气”。测试验证Google返回搜索结果,首个结果返回给出的答案。

    01 public class SimpleGoogleTest extendsActivityInstrumentationTestCase2<SimpleAppActivity> {
    02  
    03     public void testGoogleShouldWork() {
    04       // Create a WebDriver instance with the activity in which we want the test to run
    05       WebDriver driver = new AndroidDriver(getActivity());
    06       // Let’s open a web page
    07       driver.get("http://www.google.com");
    08  
    09       // Lookup for the search box by its name
    10       WebElement searchBox = driver.findElement(By.name("q"));
    11  
    12       // Enter a search query and submit
    13       searchBox.sendKeys("weather in san francisco");
    14       searchBox.submit();
    15  
    16       // Making sure that Google shows 11 results
    17       WebElement resultSection = driver.findElement(By.id("ires"));
    18       List<WebElement> searchResults = resultSection.findElements(By.tagName("li"));
    19       assertEquals(11, searchResults.size());
    20  
    21       // Let’s ensure that the first result shown is the weather widget
    22       WebElement weatherWidget = searchResults.get(0);
    23       assertTrue(weatherWidget.getText().contains("Weather for San Francisco, CA"));
    24     }
    25 }

    Activity会在屏幕上显示WebView,允许你看到你的web应用,一旦测试代码执行。

    下面是交互测试。

    WebDriver支持创建高级手势与设备交互,该示例是 水平轻弹扔掉一张图片,保证库中下一张图片显示。

    1 WebElement toFlick = driver.findElement(By.id("image"));
    2 // 400 pixels left at normal speed
    3 Action flick = getBuilder(driver).flick(toFlick, 0, -400, FlickAction.SPEED_NORMAL)
    4         .build();
    5 flick.perform();
    6 WebElement secondImage = driver.findElement(“secondImage”);
    7 assertTrue(secondImage.isDisplayed());

    旋转屏幕,保证屏幕显示的图片尺寸调整大小。

    1 assertEquals(landscapeSize, secondImage.getSize())
    2 ((Rotatable) driver).rotate(ScreenOrientation.PORTRAIT);
    3 assertEquals(portraitSize, secondImage.getSize());

    发现一个bug,你可以轻易的截屏,帮助你调试。

    1 File tempFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
  • 相关阅读:
    人工神经网络(Artificial Neural Networks)
    潜语义分析(Latent Semantic Analysis)
    IOS Dictionary和Model相互转换
    jquery ajax跨域请求webservice
    日期格式转换
    1
    iptables详解
    yum报错-Network is unreachable"Error:
    41个Web开发者JavaScript实用小技巧
    比较常用的几个maven第三方镜像
  • 原文地址:https://www.cnblogs.com/xiaochao1234/p/3628154.html
Copyright © 2011-2022 走看看