自动化测试是近几年比较火热的一个话题,想要在软件测试这个行业继续前行,就必须拥有核心竞争力,掌握自动化测试技术,是必不可少的一个技能

在《Google软件测试之道》一书中有介绍到:在Google,70%的自动化测试工作集中于单元测试,20%集中于接口测试,剩下10%才是UI测试。

诚然,我们没有Google那么完善的机制和工程师文化,没必要一切照搬Google,但Google作为互联网2.0时代最耀眼的一个公司,它的技术发展方向,流程管理等可以说是不久的将来,我们也要到达的方向。选择适合自己的,落地应用,是当下我们应该做的。目前国内的互联网行业,大环境来说,还处在一个快速发展,需要流程化标准化的时期,如何跟上不断变幻发展的节奏,除了不断了解接触新的东西,还需要不断学习,提升自身,以内在的驱动力,去紧跟时代浪潮。即使做不了弄潮儿,也不能变成时代淘汰的那一批。

一、自动化测试简介

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

①黑盒测试回归效率低;

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

③回归的覆盖率不足;

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

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

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

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

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

②降低回归成本;

③提高回归覆盖率;

④提高回归效率;

⑤提高回归的稳定性;

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

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

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

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

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

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

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

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

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

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

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

  • 编程语言:编写测试脚本、日志记录和输出;
  • 单元测试框架:提供测试脚本运行、异常校验等一些列的配置;
  • 扫描编译工具:测试文件扫描编译,一般配合持续集成工具使用效果更佳;
  • 持续集成工具:Jenkins,经典的持续集成工具;
  • 数据库:测试数据管理;
  • 项目管理工具:测试结果统计管理;

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

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

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

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

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

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

1、节省测试成本

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

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

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

3、效益更高

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

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

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

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

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

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

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

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

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

四、接口自动化测试

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,目的是为了测试结果自动更新上传,更好的统计测试结果,以便后期的优化;

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

自动化测试常见问题总结相关推荐

  1. 自动化测试常见问题总结,拿走不谢

    自动化测试是近几年比较火热的一个话题,想要在软件测试这个行业继续前行,就必须拥有核心竞争力,掌握自动化测试技术,是必不可少的一个技能. 一. 自动化测试简介 1 为什么要进行自动化测试? ①黑盒测试回 ...

  2. python UI自动化知识点总结

    关于python自动化的知识点问答 使用selenium做自动化测试常见问题 1.selenium中如何判断元素是否存在? isElementPresent 2.selenium中hidden或者是d ...

  3. 自动化测试基础之Python常见问题

    在自动化测试中,Python语言是比较常见的一种,在使用Python的时候需要注意到一些地方,今天小千就来带大家整理一下常见的几大问题. 一.交互式编程 python 拥有交互式编程,我们打开cmd, ...

  4. 如何让页面初始化的时候实现点击事件_辅助程序实现黑盒自动化测试的常见问题...

    背景辅助程序(Accessibility)在大多数机型上具有重启设备后被激活的特性,可以完成Android测试框架(Uiautomator1.0.Uiautomator2.0)无法实现的功能.本文介绍 ...

  5. 辅助程序实现黑盒自动化测试的常见问题

    背景 辅助程序(Accessibility)在大多数机型上具有重启设备后被激活的特性,可以完成Android测试框架(Uiautomator1.0.Uiautomator2.0)无法实现的功能.本文介 ...

  6. 如何从功能测试转化自动化测试?

    一.学习自动化之前,大家需要先知道自动化测试是啥? 自动化测试是将人为测试情形转化为机器执行的过程.一般说来,测试用例设计后,由测试员根据测试用例中描述的规则一步步地进行测试,得到测试结果和预期结果的 ...

  7. 《精通自动化测试框架设计》目录—导读

    作者简介 精通自动化测试框架设计 陈冬严,浙江大学硕士,具有10年软件测试和团队管理的工作经验,先后服务于ITSM.PLM软件研发企业,现就职于某金融行业核心机构IT规划部门.业余时间喜欢园艺. 邵杰 ...

  8. python自动测试p-关于《Python自动化测试实战》

    作者有话说 笔者写这本书的初心是想通过自身经验分享一些在自动化测试领域中的实用技术,能够帮助那些正在从事自动化测试相关工作或者准备转型自动化测试的测试人员.任何一门技术涵盖的知识点都是非常广泛的,可能 ...

  9. 笨办法学python47详解_练习 47 - 自动化测试 - 笨办法学Python3

    练习 47. 自动化测试 为了确认游戏功能是否正常,你需要一遍一遍地在你的游戏中输入命令.这个过程非常枯燥.如果能写一小段代码来测试你的代码岂不是更好?一旦你对程序做了任何修改,或者添加了什么新东西, ...

  10. 腾讯Android自动化测试实战3.1.4 Robotium的控件获取、操作及断言

    3.1.4 Robotium的控件获取.操作及断言 Robotium是一款在Android客户端中的自动化测试框架,它需要模拟用户操作手机屏幕.要完成对手机的模拟操作,应该包含以下几个基本操作: (1 ...

最新文章

  1. 【目录】 软件测试全栈需要学习什么? 软件测试的各个阶段 ,软件测试学习路径,软件测试方向选择,软件测试的薪资待遇。...
  2. SetConsoleCtrlHandler 处理控制台消息
  3. boost::geometry::dot_product用法的测试程序
  4. python代码生成可执行程序_Python—脚本程序生成exe可执行程序(pyinstaller)
  5. Codrops 教程:基于 CSS3 的精美模态窗口效果
  6. 2012年下半年我国信息化和信息安全走势分析与预测
  7. 中职生学业水平测试资料软件,中职生学业水平测试备考计划.doc
  8. linux下tcpdump的使用简介
  9. Excel组件使用配置文档下载
  10. 计算机三级嵌入式试题讲解,计算机三级嵌入式系统操作题及解析.docx
  11. 转载:【菜鸟专用】使用LaTeX轻松撰写精美个人简历
  12. Windows10专业版系统镜镜像
  13. 第一届广西英招杯部分WP
  14. 调用微信的收货地址和我的地址功能页面。
  15. chcp Command的妙用
  16. 洛谷P4735 最大异或和
  17. 【蓝桥杯】算法提高 奥运会开幕式
  18. 【纪中受难记】——Day13:还有两天放假
  19. 关于springboot项目中两种自定义取值方案
  20. 微信小程序-地图导航

热门文章

  1. Ubuntu系统上的ImageJ安装和卸载方法
  2. iOS及Mac开源项目和学习资料【超级全面】
  3. ZUC算法的Python实现
  4. 【计算机网络】网络安全 : 对称密钥分配 ( 密钥分配 | 密钥分配中心 KDC | 对称密钥分配 | 密钥分配协议 | Kerberos 协议 )
  5. COMSOL(1)寻找最小曲面
  6. 单片机/嵌入式体系介绍
  7. 一阶低通滤波器方程_一阶低通滤波器
  8. 如何安装WinDriver—linux 系统下和Windows系统下———官网中文教程
  9. 一分钟了解“Matlab画三维空间中的点plot3”
  10. WebService原理