zoukankan      html  css  js  c++  java
  • 自动化测试:理论

    输入-过程-输出

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

    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
    • 减少不必要的元素操作
    • 使用并发测试
  • 相关阅读:
    为了兼容性问题,本人一律淘汰不兼容如下三种浏览器的js
    http://store.microsoft.com/home.aspx
    <转>JavaScript的IE和火狐的兼容性解决办法
    常用的正则表达式 我转与改的吧
    线程间操作无效: 从不是创建控件“textBox4”的线程访问它
    练习题 求a[i]到a[j]累积和为最大的部分
    自己写的操作记录的类,就是记录各种操作[原创]
    【MM系列】SAP MM中的委外加工与信息记录
    【MM系列】SAP MM模块-移动类型全部列表
    【MM系列】SAP MM模块-组织结构介绍
  • 原文地址:https://www.cnblogs.com/lj8023wh/p/7729081.html
Copyright © 2011-2022 走看看