自动化测试selenium篇(一)

1. 什么是自动化测试

1.1 自动化测试介绍

        自动化测试指软件测试的自动化,简单来说,就是将人工操作的的测试工作进行转换,让代码去执行测试工作,这样做主要是为了提高测试效率,从而提高测试产品的质量;

1.2 自动化测试分类

1.2.1 单元测试

        最大的投入应该在单元测试上,单元测试运行的频率也更加高。 java的单元测试框架是Junit

1.2.2 接口测试

        接口测试就是API测试,相对于UI自动化API自动化更加容易实现,执行起来也更稳定。

        接口自动化的有以下特点:

                可在产品前期,接口完成后介入 

                用例维护量小

                适合接口变动较小,界面变动频繁的项目

        常见的接口自动化测试工具有,RobotFramework,JMeter,SoapUI,TestNG+HttpClient,Postman 等。接口其实就是前端发出请求之后到后端的路由:chrome浏览器中的接口如下图所示:

        1.2.3 UI自动化

        UI层的自动化测试更加贴近用户的需求和 软件系统的实际业务。并且有时候我们不得不进行UI层的测试。

        UI自动化的特点:

                用例维护量大

                页面相关性强,必须后期项目页面开发完成后介入

                UI测试适合与界面变动较小的项目

2. selenium介绍

2.1 selenium的优点

        selenium有以下优点:

        1、免费,可以去查看原码;

        2、selenium支持各大浏览器(edge,chrome,opera);

        3、跨平台(在linux,windows,mac)等平台上都可以使用;

        4、有丰富的api;

2.2 selenium的工作原理

        

        上图就是selenium的工作原理图:

        自动化脚本代码:在idea中写的代码;

        驱动:有了驱动之后就可以对页面进行操作;

        浏览器:就是我们日常使用的浏览器;

        webdriver浏览器驱动:就类似于启动一个服务器,(ip来定位一个服务器,port来定义该服务器里面的一个进程),通过该驱动器我们就可以知道往哪个服务器上发动请求;

2.3 selenium的环境搭建(java)

2.3.1 下载chrome浏览器

https://www.google.cn/intl/zh-CN/chrome/

2.3.2 查看浏览器版本

2.3.3 下载chrome浏览器驱动

https://chromedriver.chromium.org/downloads

        没有129版本的话,点击箭头所示的连接,进入到新的页面;

        找到相对应的版本的驱动器进行下载;

2.3.4 配置环境变量

        将刚才下载的驱动器的exe文件移动到浏览器所在位置的路径下面;同时修该环境变量;

Docs

2.3.5 验证驱动器是否下载成功

 <dependencies>
        <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.141.59</version>
        </dependency>
    </dependencies>

将依赖复制到pom文件;代码如下:

运行程序,发现chrome浏览器被打开且弹跳到百度页面:

        如此我们的环境就搭建好了;

3. selenium相关的api

3.1 定位元素

3.1.1 css选择器定位元素

        1、类选择器:.class值(.s_ipt)

        2、id选择器:#id的值()

        3、父类选择器 子类选择器:父类选择器表达式 子类选择器表达式(#aaa #bbb)

        4、标签选择器:标签名;

3.1.2 xpath定位元素(xpath是一个语法)

        绝对路径:通过一个/开头

        相对路径:通过一个//开头

        1、相对路径+索引,该索引从1号位开始计数;

        2、相对路径+属性值(//input[@class="s_ipt"])

        3、相对路径+通配符(//*[@class="s_ipt"])

        4、相对路径+文本匹配(//a[text()="新闻"])

       快捷方式:点击定位的元素,右键鼠标自己定位选择器;从而选择合适的选择器或者xpath,

3.1.3 标签定位元素

        通过下面代码来了解一下浏览器驱动器的工作原理;

  private static void Test01() {
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://www.baidu.com");
        WebElement search_input = webDriver.findElement(By.cssSelector(".s_ipt"));
//        WebElement search_input = webDriver.findElement(By.xpath("//*[@id=\"form\"]/span[1]"));
        if(search_input == null){
            System.out.println("测试不通过");
        }else{
            System.out.println("测试通过");
        }
//        webDriver.quit();
//        webDriver.close();
    }
}

2.4 关闭浏览器api

  webDriver.quit();
  webDriver.close();

        quit比较关的彻底,向浏览器存储的cookie都会被彻底清除;close仅仅是将浏览器关闭;

        q:css选择器个xpath选择器之间的区别:

        a:一般来说,css选择器定位元素的效率更高;

3. 操作测试对象

        webdriver 中比较常用的操作对象的方法有下面几个:

        click 点击对象

        send_keys 在对象上模拟按键输入

        clear 清除对象输入的文本内容

        submit 提交

        text 用于获取元素的文本信息

代码如下:

 private static void Test02() throws InterruptedException {
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
        //找到搜索输入框
        WebElement search_input = webDriver.findElement(By.cssSelector("#kw"));
        //相搜索输入框中输入沈梦瑶
        search_input.sendKeys(("沈梦瑶"));
        //找到百度一下并点击
        WebElement baidu_button = webDriver.findElement(By.cssSelector("#su"));
        //点击百度一下
        baidu_button.click();
        sleep(3000);
        List<WebElement> search_results =
                webDriver.findElements(By.cssSelector("a em"));
        sleep(3000);
        for(int i = 0;i < search_results.size();i++){
            if(search_results.get(i).getText().equals("沈梦瑶")){
                System.out.println("测试通过");
            }else{
                System.out.println("测试不通过");
            }
        }
    }

运行结果如下所示:

浏览器的页面流程:

1、首先驱动器打开chrome浏览器

2、在搜索框里面输入:沈梦瑶

3、点击百度一下,停止运行,等待3000ms

4、进入下一个搜索结果的页面,如下所示:

5、浏览器驱动器将搜索到的结果进行整理并遍历,一一筛选出我们需要的结果,从而将我们需要的内容反馈到idea;

ps:本次的内容就到这里了,如果对你有所帮助的话就请一键三连哦!!!

封面截图来自刘姝贤的毕业公演的pv;

url:【流水线的流水账】江西几日游_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值