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。

 

1public 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返回搜索结果,首个结果返回给出的答案。

 

01public 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支持创建高级手势与设备交互,该示例是 水平轻弹扔掉一张图片,保证库中下一张图片显示。

 

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

 

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

 

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

 

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

 

1File tempFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);

转载于:https://www.cnblogs.com/xiaochao1234/p/3628154.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值