• 自动化测试:理论


    输入-过程-输出

    --通过测试脚本和测试数据来完成测试过程,并比较测试结果,进而形成测试报告。

    Web自动化测试

    自动化测试过程:

    • 明确测试范围:确定需要进行自动化测试的功能和颗粒度,编写测试脚本(最后的输出:比如sanity test的case有哪些,regression的case有哪些)
    • 明确脚本执行策略:执行周期,比如sanity case需要每个新版本构建之后立马执行一遍
    • 编写测试框架:确定脚本分层-数据文件,公共文件,page文件,test case文件,封装公用功能,比如重新封装find element
    • 编写测试脚本并调试
    • 执行测试脚本并输出测试报告
    • 分析测试报告
    • 维护测试脚本

    测试脚本编写基本流程:定位元素-操作元素-获取结果-比较结果-输出报告

    自动化测试理论

    理论1:数据驱动-测试数据与测试脚本分离

    优点-

    • 可读性强
    • 可扩展性强
    • 强大的第三方支持
    • 脚本修改简单

    实例-

    • Python+Selenium UI自动化测试:使用Excel存取数据
    • JavaScript+Selenium UI自动化测试(Nightwatch):会将统一类型的数据放在一个单独的文件中,然后去读取
    • Jmeter 性能测试和接口测试:使用Csv存取数据
    • TestNG 单元测试:@DataProvider注解

    理论2:测试脚本分层:测试描述,测试步骤,测试对象分离(业务流程,功能点,操作组件)

    优点-

    • 可复用性高
    • 独立性强,依赖低
    • 快速定位查找问题

    实例-

    • Cucumber UI自动化测试:feature文件(.feature 测试描述),step文件(.rb 功能点实现)
    • JavaScript+Selenium UI自动化测试(Nightwatch)& Java+Selenium UI自动化测试:pageObject模式

    PageObject模式

    基本原理: 将页面的元素定义(类属性)和元素操作(类方法)封装成一个类,在case文件中直接调用。如果一个page很庞大,也可以将一个page封装成多个组件

    优点-

    • 实现了测试脚本分层(测试用例和页面对象分离):代码可读性强,代码可复用,代码维护简单

    BasePage模式

    优点-

    • 进一步实现了测试脚本分层:代码可读性强,代码可复用,代码维护简单

     理论3:测试case之间耦合性要低

    优点:

    • 提高自动化测试脚本的稳定性

    如果case之间关联性太大,下一个case依赖上一个case的输出:

    • 并发测试会报错
    • 上一个case报错,直接影响下一个case的执行,但实际上,下一个case的功能并不受上一个case的影响,这样就测不到下一个case了

    UI自动化测试常遇到的问题

    1. 如何去提升用例的稳定性?用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没办法通过了。

    • 常见的不稳定因素就是定位不到元素:
      • 使用sleep(5) - 牺牲测试脚本执行时间
      • 使用隐性等待和显性等待
      • 使用try捕捉异常,并进行相应处理 - 比如可以换种方法
    • 减少函数冲突(低耦合)

    2. 如何去提升用例执行的速度?

    • 优化等待时间:尽量少使用sleep,implicitly wait, 多使用WebDriverWait
    • 减少不必要的元素操作
    • 使用并发测试
  • 相关阅读:
    初学 python 之 多级菜单实现原理
    初学 python 之 用户登录实现过程
    Sqlmap使用教程
    对伪静态网站实施注射
    干货!IT小伙伴们实用的网站及工具大集合!持续更新!
    lnmp、lamp、lnmpa一键安装包(Updated: 2016-4-12)
    如何入门 Python 爬虫?
    在Windows Live Writer中插入C# code
    IIS装好后,局域网不能访问
    修改win7登录界面
  • 原文地址:https://www.cnblogs.com/lj8023wh/p/7729081.html
Copyright © 2020-2023  润新知