51Testing软件测试论坛

标题: webUI自动化测试框架:简介和Demo入门 [打印本页]

作者: 恭喜发财dife    时间: 2019-1-24 15:15
标题: webUI自动化测试框架:简介和Demo入门
本帖最后由 恭喜发财dife 于 2019-1-24 15:19 编辑

前言:selenium和webdriver是目前主流的ui自动化测试框架之一,selenium又称为selenium RC,基本原理为js注入,而webdriver是直接利用了浏览器的native support(厂商支持)来操作浏览器,所以,对于不同浏览器,必须依赖一个特定的浏览器native component来实现把webdriver API转化为浏览器的native invoke。在我们new出一个webdriver时,selenium首先会确认浏览器的native component是否存在且版本匹配(所以在使用浏览器驱动时,需要检查该驱动版本与selenium的版本是否匹配,不匹配则不可用),接着在目标浏览器中启动一整套的Web service,这套web service使用了selenium自己设计定义的协议,可以模拟用户操作浏览器做出一系列动作。更多信息可访问官方的用户手册:http://www.seleniumhq.org/docs/




进入正题:一、环境搭建

webUI自动化的环境搭建相比于app简单的多,有jdk,有selenium jar包,有浏览器驱动就够了。

1.前往官网下载selenium相关jar包:http://www.seleniumhq.org/download/

2.新建java project,将selenium jar包及lib目录下的jar包add to build path即可。

3.webdriver常用的方法:



更多方法可查阅官网文档。

4.接下来我们写个demo。
  1. package com.etyero.testcase;

  2. import java.util.concurrent.TimeUnit;

  3. import org.openqa.selenium.By;
  4. import org.openqa.selenium.WebDriver;
  5. import org.openqa.selenium.chrome.ChromeDriver;
  6. import org.testng.Assert;
  7. import org.testng.annotations.AfterMethod;
  8. import org.testng.annotations.BeforeMethod;
  9. import org.testng.annotations.Test;

  10. public class WebDriverDemo {
  11.         private WebDriver driver;
  12.         private String baseUrl = "http://www.baidu.com";
  13.         private StringBuffer verificationErrors = new StringBuffer();

  14.         @BeforeMethod
  15.         public void setUp() throws Exception {
  16.                 String browserDriverUrl = "D:/work/workplace/webUITest/browserDriver/chromedriver.exe";// 浏览器驱动路径
  17.                 //启动chrome浏览器
  18.                 System.setProperty("webdriver.chrome.driver", browserDriverUrl);
  19.                 driver = new ChromeDriver();
  20.                 driver.manage().window().maximize();// 最大化浏览器
  21.                 driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);//设置操作超时时长,该设置是全局性的,即所有操作都最长等待30s

  22.         }

  23.         @Test
  24.         /**
  25.          * 搜索selenium
  26.          *
  27.          * */
  28.         public void testLogin() throws Exception {
  29.                 driver.get(baseUrl);
  30.                 driver.findElement(By.id("kw")).clear();// 按id找到元素后,清空该元素
  31.                 driver.findElement(By.id("kw")).sendKeys("selenium");// 输入selenium
  32.                 driver.findElement(By.id("su")).click(); //点击搜索按钮
  33.         }

  34.         @AfterMethod
  35.         public void tearDown() throws Exception {
  36.                 driver.quit();
  37.                 String verificationErrorString = verificationErrors.toString();
  38.                 if (!"".equals(verificationErrorString)) {
  39.                         Assert.fail(verificationErrorString);
  40.                 }
  41.         }
  42. }
复制代码





作者: Miss_love    时间: 2020-12-31 11:01
支持分享




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2