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 publicclassSimpleAppActivityextendsActivity {
2 @Override
3 publicvoidonCreate(Bundle savedInstanceState) {
4 super.onCreate(savedInstanceState);
5 }
6 }

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

01 publicclassSimpleGoogleTestextendsActivityInstrumentationTestCase2<SimpleAppActivity> {
02
03 publicvoidtestGoogleShouldWork() {
04 // Create a WebDriver instance with the activity in which we want the test to run
05 WebDriver driver =newAndroidDriver(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);

更多相关文章

  1. Android渗透测试虚拟机环境(VM)—AppUse
  2. Android播放视频的三种方式示例
  3. Android(安卓)OpenGL ES 分析与实践
  4. 走进Android
  5. Android(安卓)App组件之Fragment说明和示例
  6. ADB—查看日志
  7. android性能测试systrace
  8. Android(安卓)ApiDemos示例解析(150):Views->Layouts->LinearLay
  9. 【Monkey】Android(安卓)Monkey autotest Tools

随机推荐

  1. Paint---PorterDuffXfermode
  2. adb获取activity信息
  3. Android(安卓)Volley自定义Request(JSON)
  4. (Android) Eclipse "launching delegate"
  5. Android(安卓)再按一次退出程序
  6. Android(安卓)CardView 在eclipse中如何
  7. Android(安卓)SDK Tools, Revision 20 发
  8. android 滑动加载数据
  9. AndClear - Android(安卓)Clean-up Manag
  10. android 8.0 Permission Denial: not all