• Day31 Web端自动化基础


    系列文章目录

    Day01 软件测试基础总结

    Day02 测试用例知识点总结(上)

    Day03 测试用例知识点总结(下)

    Day04 禅道-从安装到卸载

    Day05 MySql的基础使用

    Day06 MySql知识点总结

    Day07 MySql知识点再总结与多表查询

    Day08 redis的基础知识

    Day08 VMware的安装、Linux系统安装和Linux基础命令

    Day09 Linux常用命令总结

    Day10 Linux环境部署和项目构建

    Day11 shell脚本基础知识

    Day12 接口和协议

    Day13 Postman的使用

    Day13 Windows环境下的JDK安装与Tomcat的启动

    Day14 jenkins部署

    Day15 jenkins的简单使用

    Day16 charles的基本使用

    Day17 考试

    Day18 考试

    Day19 Fiddler的简单使用

    Day20 Python基础

    Day21 python 语句基础

    Day22 Python数据类型(上)

    Day23 Python数据类型(下)

    Day24 Python函数

    Day25 Python的文件操作和异常处理

    Day26 Python面向对象

    Day27 Python的部分算法

    Day28 单元测试 unittest

    Day29 单元测试 pytest

    Day30 接口测试requests

    Day31 Web端自动化基础


    目录

    前言

    一、认识web自动化测试

    1.自动化的好处

    2.自动化测试的分类

    3.web自动化条件和使用范围

    4.web自动化常用的工具

    二、元素定位

    1.元素定位的手段

    2.环境及工具

    3.XPath

    4.获取XPath

    5.选择器

    总结


    前言

            软件自动化测试就是通过测试工具或者其他手段,按照测试人员的预定计划对软件产品进行自动化测试,他是软件测试的一个重要组成部分,能够完成许多手工测试无法完成或者难以实现的测试工作,正确合理的实施自动化测试,能够快速,全面的对软件进行测试,从而提高软件质量,节省经费,缩短软件的发布周期。


    一、认识web自动化测试

    1.自动化的好处

    1)缩短测试周期
        计算机行业更新迭代快速,大量频繁的回归测试消耗时间,自动化测试能够将重复的实行交给计算机去做,加快测试速度。
    2)避免人为出错
        测试人员不可能持续高度集中,并且人类易受外界影响(头疼脑热,精神不振),可能会造成人为错误    
    3)测试信息存储
        自动化测试将测试信息和数据储存在文件中,思路清晰明确,交接方便
    4)轻易获取覆盖率
        自动化测试能够解放测试人员,使测试人员能够有更多的精力做那些非重复性的工作。
    5)其他

         自动化测试可以是实现自动或者定时执行

    2.自动化测试的分类

    整体分类:

    1.自动化功能测试

            分类:

                    1.单元测试(一般由开发人员做单元测试)

                    2.功能测试

                    3.接口测试(只在大中型项目或长期项目中采用自动化测试)

    2.自动化性能测试

            工具:

                    Loadrunner、Jmeter等,对软件进行压力测试、负载测试等等,因为这些无法用手工进行代替,所以必须自动化。
                    为了测试一个web站点的服务能力,需要模拟上千上万的请求(比如打开浏览器访问站点),人的速度是远远达不到这样的操作的。

    3.web自动化条件和使用范围

    前提条件:

    1)手动测试已经完成,后期再不影响进度的前提下逐渐实现自动化
    2)项目周期长,重复性的工作都交给机器去实现
    3)需求稳定,项目变动不大
    4)自动化测试脚本复杂度比较低
    5)可重复利用

    使用场景:

    1)频繁的回归测试
    2)冒烟测试
    3)传统行业需求变化不大,应用频繁
    4)性能测试

    4.web自动化常用的工具

    QTP(收费)、Selenium(开源)、RFT(收费)

    二、元素定位

    1.元素定位的手段

    1)css选择器
    2)xpath

    2.环境及工具

    1)firefox35
    2)firebug插件
    3)firepath插件

    3.XPath

    XPath即为XML路径语言,它是一种用来(标准通用标记语言的子集)在 HTML\XML 文档中查找信息的语言。

    节点的概念:每个XML/HTML的标签我们都称之为节点

    /html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input

    XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似

    4.获取XPath

    获取XPath由许多好用的方法

    表达式描述
    nodename读取此节点的所有子节点
    /从根节点选取
    //从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置
    .选取当前节点
    ..选取当前节点的父节点
    @选取属性

     查找某个特定的节点或者包含某个指定的值的节点

    路径表达式结果
    /bookstore/book[1]选取属于bookstore子元素的第一个book元素
    /bookstore/book[last()]选取属于bookstore子元素的最后一个book元素
    /bookstore/book[last()-1]选取属于bookstore子元素的倒数第二个book元素
    /bookstore/book[position()<3]选取最前面两个属于bookstore子元素的book元素
    //title[@lang]选取所有拥有名为lang的属性的title元素
    //title[@lang=’eng‘]选取所有title元素,且这些元素拥有值为eng的lang属性

     选择未知节点

    通配符描述
    *匹配任何元素节点
    @*匹配任何属性节点
    node()匹配任何类型的节点

    路径表达式结果
    /bookstore/*选取bookstore元素的所有子元素
    //*选取文档中的所有元素
    html/node()/meta/@*选择html下面任意节点的meta节点的所有属性
    //title[@*]选取所有带有属性的title元素

     选取若干路径

    路径表达式结果

    //book/title | //book/price

    选取book元素的所有title和price元素
    //title | //price选取文档中的所有title和price元素
    //bookstore/title | //price选取属于bookstore元素的book元素的所有title元素,以及文档中所有的price元素

    补充内容:

    表达式描述
    //*[test()='xxx']查找文本内容是xxx的元素
    //*[starts-with(@attribute,'xxx')]查找属性以xxx开头是元素
    //*[contains(@attribute,'xxx')]查找属性中含有xxx的元素
    //*[@attribute1=value1 and@attribute2=value2]查找同时有两个属性值的元素

    5.选择器

           CSS 中,选择器是一种模式,用于选择需要添加样式的元素。计算机能够通过css选择器定位到相应元素,我们在编写自动化测试脚本的时候很多时候是在不断地找到css选择器。

    通过伪类名、id、标签名定位 

    选择器实例描述
    .class.Intron选择class=‘Intron’的所有元素
    #id#firstname选择id='firstname'的所有元素
    **选择所有元素
    elementp选择所有

    元素

     通过元素之间嵌套关系

    表达式实例描述
    element,elementdiv,p选择所有
    元素和所有

    元素

    element elementdiv p选择
    内部的所有

    元素

    element>elementdiv>p选择父元素为
    元素的所有

    元素

     通过属性

    表达式实例描述
    [attribute][target]选择带有target属性所有元素
    [attribute=value][target=_blank]选择target=‘_blank’的所有元素
    [attribute^=value]a[src^='https']选择属性值以'https'开头的每个元素
    [attribute$=value]a[src$='.pdf']选择src属性以'.pdf'结尾的所有元素
    [attribute*=value]a[src*='abc']选择src属性中包含'abc'字符串的每个元素

     通过父子关系

    表达式实例描述
    :only-childp:only-child选择属于其父元素的每个

    元素

    :nth-child(n)p:nth-child(2)选择属于其父元素的第二个子元素的每个

    元素

    :nth-last-child(n)p:nth-last-child(2)同上,从最后一个子元素开始计数

    总结

            本章是ui自动化的基础

  • 相关阅读:
    机器学习-特征选择:如何使用交叉验证精准选择最优特征?
    编解码持续升级,「硬」实力铸就视频云最优解
    JVM详解【三】JVM的内存结构
    圣杯布局和双飞翼布局
    Python学习笔记--自定义元类
    c++新特性 noexcept 字面量 对齐方式
    Javascript的事件循环机制
    人工智能导论网课笔记与实战
    python可视化----pyqtgraph
    基于java的图书馆座位系统的设计与实现
  • 原文地址:https://blog.csdn.net/lookout99/article/details/126587447