美文网首页
GUI自动化测试

GUI自动化测试

作者: 倔强的潇洒小姐 | 来源:发表于2019-07-18 08:47 被阅读0次

    一、Selenium 2.0 的实现原理

    Selenium 2.0,又称 Selenium WebDriver,它利用的原理是:使用浏览器原生的 WebDriver 实现页面操作。

    Selenium WebDriver 是典型的 Server-Client 模式,Server 端就是 Remote Server。以下是 Selenium 2.0 工作原理的解析。

    Selenium WebDriver 的执行流程.png

    1、当使用 Selenium2.0 启动浏览器 Web Browser 时,后台会同时启动基于 WebDriver Wire 协议的 Web Service 作为 Selenium 的 Remote Server,并将其与浏览器绑定。绑定完成后,Remote Server 就开始监听 Client 端的操作请求。

    2、执行测试时,测试用例会作为 Client 端,将需要执行的页面操作请求以 Http Request 的方式发送给 Remote Server。该 HTTP Request 的 body,是以 WebDriver Wire 协议规定的 JSON 格式来描述需要浏览器执行的具体操作。

    3、Remote Server 接收到请求后,会对请求进行解析,并将解析结果发给 WebDriver,由 WebDriver 实际执行浏览器的操作。

    4、WebDriver 可以看做是直接操作浏览器的原生组件(Native Component),所以搭建测试环境时,通常都需要先下载浏览器对应的 WebDriver。

    二、构建一个 Selenium 自动化测试用例示例

    访问百度主页,搜索某个关键词,并验证搜索结果页面的标题是“被搜索的关键词”+“_ 百度搜索”。

    image.png

    案例中用到了Chrome 浏览器,所以需要先下载 Chrome Driver (与chrome浏览器版本需要兼容)并将其放入环境变量。接下来,建立一个空的 Maven 项目,然后在 POM 文件中加入 Selenium 2.0 的依赖,如图 1所示

    在 POM 文件中加入 Selenium 2.0 的依赖.png

    代码实现如下:

    import org.junit.Assert;
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;
    
    public class Python_Search {
        public static void main(String[] args) throws InterruptedException{
            //创建Chrome
            WebDriver driver = new ChromeDriver();
            //打开百度首页
            driver.navigate().to("https://www.baidu.com");
            //通过name属性找到搜索输入框
            WebElement search_input = driver.findElement(By.name("wd"));
            //输入关键字“python”
            search_input.sendKeys("python");
            //提交搜索请求
            search_input.submit();
            //等待3秒
            Thread.sleep(3000);
            //验证搜索结果页面的标题
            Assert.assertEquals("python_百度搜索", driver.getTitle());
            //关闭浏览器窗口
            driver.quit();
        }
    }
    
    查找搜索输入框.png

    补充说明:别忘了下载第三方驱动哦,selenium必须要依赖浏览器才能跑起来
    selenium jar包可以去selenium官网下载

    相关文章

      网友评论

          本文标题:GUI自动化测试

          本文链接:https://www.haomeiwen.com/subject/cepflctx.html