0


自动化测试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的工作原理

    ![](https://i-blog.csdnimg.cn/direct/4d775d417f3440009af50ced75d78fd5.png)
    上图就是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浏览器被打开且弹跳到百度页面:

    如此我们的环境就搭建好了;
  1. 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,![](https://i-blog.csdnimg.cn/direct/9f54b1c5ebc54fe0b22328d3676cae13.png)

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


本文转载自: https://blog.csdn.net/2202_76101487/article/details/142744840
版权归原作者 仲夏是荔枝味 所有, 如有侵权,请联系我们删除。

“自动化测试selenium篇(一)”的评论:

还没有评论