• 新手小白学自动化测试必须要知道的知识!


    1、为什么要进行自动化测试?

    ①黑盒测试回归效率低;

    ②手动测试的偶然性和不确定性;

    ③回归的覆盖率不足;

    ④交付的产品质量无法保证,全靠评估;

    ⑤系统越复杂,问题越多;

    ⑥上线时间长、构建失败率高导致的蝴蝶效应(迭代快,加班多);

    2、自动化测试能解决什么问题?

    ①提高出现问题后的响应速率;

    ②降低回归成本;

    ③提高回归覆盖率;

    ④提高回归效率;

    ⑤提高回归的稳定性;

    3、自动化测试的不足有哪些?

    ①无法减少成本投入,而是为了加快测试结果反馈,提升测试质量;

    ②自动化适用于回归和冒烟,而不是发现BUG;

    ③录制回放功能是鸡肋,可视化并不是一个很好的做法;

    ④不是所有所有系统所有功能都适合做自动化测试;

    4、常见的自动化测试框架?

    接口自动化框架常用组合:

    1. 方案一:Java+TestNG/Junit+Maven/ANT/Gradle+Jenkins+Mysql+Testlink/Redmine
    2. 方案二:JMeter+Maven/ANT/Gradle+Jenkins+Mysql+Testlink/Redmine
    3. 方案三:Python+Unittest/Pytest+Jenkins+Testlink/Redmine
    4. 方案四:Python+Robot Framework+Jenkins+Testlink/Redmine

    UI自动化测试框架常用组合:

    1. 方案一:Java+Selenium/Appium+TestNG/Junit+Maven/ANT/Gradle+Jenkins+Mysql+Testlink/Redmine
    2. 方案二:Python+Selenium/Appium+Unittest/Pytest+Jenkins+Testlink/Redmine
    3. 方案三:Python+Selenium/Appium+Robot Framework+Jenkins+Testlink/Redmine

    通过上面的一些常见框架,你发现了什么?它们都拥有共同特性:编程语言+单元测试框架+扫描编译工具+持续集成工具+数据库+项目管理工具。

    编程语言:编写测试脚本、日志记录和输出;

    单元测试框架:提供测试脚本运行、异常校验等一些列的配置;

    扫描编译工具:测试文件扫描编译,一般配合持续集成工具使用效果更佳;

    持续集成工具:Jenkins,经典的持续集成工具;

    数据库:测试数据管理;

    项目管理工具:测试结果统计管理;

    自动化测试工具太多,上面只是列举使用率较高以及一些开源工具,具体的框架选型,需要根据具体项目特点和团队、个人技术特点来决定。

    5、接口测试的意义和必要性

    接口,即API,应用程序编程接口。以下主要说说接口测试的必要性和意义:

    接口测试实施在多系统的平台架构下,有着极为高效的成本收益比(当然,单元测试收益更高,但实施单元测试的成本投入更大,技术要求更高,所以应该选择更适合自身的才是最好的方案)。

    接口测试天生为高复杂性的平台带来高效的缺陷检测和质量监督能力,平台复杂,系统越庞大,接口测试的效果越明显。

    总的来说,接口测试是保证高复杂性系统质量的内在要求和低成本的经济利益驱动作用下的最佳方案,主要体现在如下三个方面:

    1、节省测试成本

    根据数据模型推算,底层的一个程序BUG可能引发上层的8个左右BUG,而且底层的BUG更容易引起全网的死机;接口测试能够提供系统复杂度上升情况下的低成本高效率的解决方案。

    2、接口测试不同于单元测试

    接口测试是站在用户的角度对系统接口进行全面高效持续的检测。

    3、效益更高

    将接口测试实现为自动化和持续集成,当系统复杂度和体积越大,接口测试的成本就越低,相对应的,效益产出就越高。

    6、开展接口测试必备的技能

    开展接口测试需要的技能,基本就是以下几点:

    业务流:了解系统及内部各个组件之间的业务逻辑交互;

    数据流:了解接口的I/O(input/output:输入输出);

    协议:包括HTTP协议,TCP/IP协议族;

    工具:工具可以辅助我们更好更高效的完成工作,常用的接口测试工具有:Jmeter、LoadRunner、SoapUI、Postman等;

    数据库知识:无论是从数据库获取知识,还是确认数据落地,抑或接口对数据执行了哪些操作,都需要确认,因此数据库知识(其实就是增删改查)就很有必要;

    接口文档的几个必要点:完整性、一致性、容错性;

    7、接口自动化测试

    1、如何开展接口测试?

    首先,调试单个接口,保证单个接口的正确和通畅(类似于性能测试中的基准测试);

    其次,明确数据流,业务流;

    最后,将N个接口测试脚本串起来,执行即可;

    最重要的一点,别想太多太复杂的层面,先把最基础最简单的做起来,就成功一大半了,至于扩展性的第三方接口、https、定时任务、自动出测试报告、自动发邮件等等功能,这都是不断累计和优化的,想太多不如行动起来,让接口自动化测试落地,才是我们首先需要考虑的。

    2、开展之前需要明确的问题?

    ①现在的测试对象包含几个页面?

    ②每个页面涉及几个接口?

    ③分别在哪一步调用?

    ④每个接口包含哪些字段?

    ⑤各个字段对应数据库哪张表?

    ⑥每个表中各个字段是什么意思?

    ⑦各个接口对表产生了怎样的操作?

    3、搭建自动化测试框架

    什么是框架?你可以理解为一个完整的环,也可以理解为让接口测试脚本运行的一整套环境,平台,随便什么都可以;一般一个自动化测试框架包含以下几点。

    数据池:即测试数据的存储管理,一般集成为一个data包,其中包括:

    log(日志文件)、report(测试报告文件,一般为xml格式)、case-data(单个接口的测试数据,一般为json格式)、server-data(接口业务串联的数据,可以用excel管理)

    脚本管理中心:接口测试脚本的统一管理、存储、调度中心,常用的工具有maven、ant等,或者可以使用编程语言中的单元测试框架提供的功能,选择自己适用的即可;

    运行平台:一般是借助工具来运行这些测试脚本,工具可以使用上面提及到的几种(jemter、loadrunner、soapui等),同样,选择合适的很重要;

    持续集成工具:最常见的就是Jenkins,它的作用就是监控外部程序的调用执行,定时或者触发调度任务,测试脚本执行等功能;

    通信服务:dubbo、spring_boot、thrift等RPC、REST同步调用服务;

    测试结果统计管理中心:比如testlink,目的是为了测试结果自动更新上传,更好的统计测试结果,以便后期的优化;

    总而言之,接口自动化测试的意义就是:数据与脚本分离,测试结果自动提交通知,提高测试脚本和测试数据的维护便利等等。

    最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】

    软件测试面试小程序

    被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

    涵盖以下这些面试题板块:

    1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

    6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

      全套资料获取方式:点击下方小卡片自行领取即可

  • 相关阅读:
    关于错误码
    unity text 文本符号显示问题与打字机效果的结合
    ubuntu 手动清理内存cache
    嵌入式中的MCU、ARM、DSP、FPGA
    互联网加竞赛 基于设深度学习的人脸性别年龄识别系统
    LeetCode 2258. 逃离火灾:BFS
    LabVIEW同时使用NI 的GPIB和Keysight 的HPIB控制器
    辅助驾驶功能开发-测试篇(2)-真值系统介绍
    JAVA进阶学习书籍
    2035. 将数组分成两个数组并最小化数组和的差 折半搜索
  • 原文地址:https://blog.csdn.net/Xsk215/article/details/133809679