51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2099|回复: 1
打印 上一主题 下一主题

webUI自动化测试框架:简介和Demo入门

[复制链接]
  • TA的每日心情
    郁闷
    2022-8-29 14:43
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2019-1-24 15:15:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 恭喜发财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常用的方法:

    • 元素定位方法:By.id(id)、By.xpath(xpath)、By.linkText(linkText)、By.className(className)、By.cssSelector(selector);
    • 点击操作:driver.findElement(By.id(id)).click();
    • 输入:driver.findElement(By.id(id)).sendKeys("selenium");
    • 获取文本:driver.findElement(By.id(id)).getText();
    • 获取对象属性值:driver.findElement(By.id(id)).getAttribute("属性");


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

    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. }
    复制代码




    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-28 15:32 , Processed in 0.079110 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表