这篇文章,就说说功能测试到接口自动化的进阶,以及接口自动化的一些事~

前言

自动化测试,算是近几年比较火热的一个话题,当然,更是软件测试未来的一个发展趋势。未来,功能测试等非核心的测试工作,都将被外包。

想要在软件测试这个行业继续前行,就必须拥有核心竞争力,掌握自动化测试技术,是必不可少的一个技能。

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

诚然,我们没有Google那么完善的机制和工程师文化,没必要一切照搬Google,但Google作为互联网2.0时代最耀眼的一个公司,它的技术发展方向,流程管理等可以说是不久的将来,我们也要到达的方向。选择适合自己的,落地应用,是当下我们应该做的。

目前国内的互联网行业,大环境来说,还处在一个快速发展,需要流程化标准化的时期,如何跟上不断变幻发展的节奏,除了不断了解接触新的东西,还需要不断学习,提升自身,以内在的驱动力,去紧跟时代浪潮。即使做不了弄潮儿,也不能变成时代淘汰的那一批。

接口测试的必要性和意义

接口,即API,应用程序编程接口,关于接口的介绍。

这里主要说说接口测试的必要性和意义:

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

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

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

节省了测试成本

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

接口测试不同于单元测试

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

效益更高

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

做接口测试需要哪些技能

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

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

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

协议:包括http协议,TCP/IP协议族(之前的博客有系统的介绍过协议,传送门:http协议:菜鸟入门系列)

工具:工具可以辅助我们更好更高效的完成工作,常用的接口测试工具有: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,目的是为了测试结果自动更新上传,更好的统计测试结果,以便后期的优化;

上面说了这么多,实际上它的意义就是:数据与脚本分离,测试结果自动提交通知,提高测试脚本和测试数据的维护便利等等。。。

我正在使用的框架为:jemter+maven+Jenkins+dubbo+MySQL…

关于接口自动化测试,基本就是上述的内容,当然,选择适合自身实际情况的框架,落地实施,才是重点,行动起来,才能咸鱼翻身。。。

最后: 可以在公众号:伤心的辣条 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!喜欢软件测试的小伙伴们,可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)


好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作?

那个准点下班的人,比我先升职了…

测试岗反复跳槽,跳着跳着就跳没了…

超详细 | 接口自动化测试总结与分享入门篇相关推荐

  1. 超详细——接口测试总结与分享 (51Testing软件测试网采编)

    超详细--接口测试总结与分享 发表于:2017-11-29 10:36  作者:米阳MeYoung   来源:51Testing软件测试网采编 字体:大 中 小 | 上一篇 | 下一篇 |我要投稿 | ...

  2. stm32移植paho_如何在STM32上移植Linux?超详细的实操经验分享

    原标题:如何在STM32上移植Linux?超详细的实操经验分享 刚从硬件跳槽为嵌软时,没有任何一丝的准备.一入职,领导就交代了一项特难的任务--在stm32上移植linux! 瞬间我就懵了,没办法硬着 ...

  3. 同一个项目相互调接口_超详细——接口测试总结与分享(一)

    1,接口的概念 1.接口是啥? 接口是传递数据的通道 接口测试: 是测试系统组件间接口的一种测试 接口主要包括: 同一个系统中模块与模块间的接口/前端后端接口, 另一个是跨系统平台与平台间的对接(内部 ...

  4. Postman接口测试工具超详细-接口关联-接口自动化测试教程实例

    一.postman插件安装 备注:postman也是有软件进行下载的,但是是需要进行FQ下载的,故自行下载安装.本节讲述的是插件的安装以及简单实用.postman是Chrome的一个接口测试插件,故如 ...

  5. 【效率】超详细!手把手带你快速入门 GitHub!

    作者:Peter     编辑:JackTian 来源:公众号「杰哥的IT之旅」 快速入门GitHub GitHub在程序开发领域家喻户晓,现在几乎整个互联网的开发者都将版本管理工具GitHub作为版 ...

  6. 一个颜值低但脾气超好的自动化运维实战入门教程

    注:本教程由廖高祥发布于实验楼,版权归原作者所有. 什么是自动化运维? 自动化运维是指将IT运维中日常的.大量的重复性工作自动化,把过去的手工执行转为自动化操作.自动化运维不单纯是一个维护过程,更是一 ...

  7. 超详细dns劫持解决办法分享

    DNS劫持有啥解决办法,怎么防止DNS劫持是大家甚是关系的一系列问题. 在回答问题之前,我们首先需要明白什么是DNS劫持.我们在上网过程中都有遇到过网页莫名跳转这些情况,打开的目标网站不是原来的内容, ...

  8. 微软AI 绘图工具+ChatGPT免费用,10秒轻松出图,超详细教程,纯干货分享

    文 / 高扬(微信公众号:量子论) 人嘛,总爱喜新厌旧.很多朋友找我(gaoyang677)建议将"量子论"公众号的教程再做个扩展,比如讲讲如何用AI绘图. 经过内部讨论,认为这个 ...

  9. 超详细的商业智能BI知识分享,值得收藏

    在数据为王的时代,获取数据和处理数据,成为企业必备的生存手段.哪个企业能在数据信息中汲取到更多的有效价值,就能抢占先机,获得市场的主动权.数据分析将不再是专业技术人员或数据分析师的专利,商业智能 BI ...

最新文章

  1. Photoshop创造氛围照片合成视频教程含素材
  2. android中一种不支持的lua操作
  3. 设置ios6中UIViewController旋转
  4. android 监听屏幕是否锁屏
  5. java null 对象吗_java中new一个对象和对象=null有什么区别
  6. IntelliJ IDEA 默认快捷键大全
  7. [转]关于Win32 Console的计时器
  8. LaTeX软件安装及简易入门
  9. [图文]TDateTime And TTime(转)
  10. iOS开发细碎知识点总结二
  11. javafx 教程_Java验证(javafx)
  12. 两手空空也创业 没钱照样做老板
  13. ipv6被拒的解决方法
  14. 计算机初学者需要知道的一些DOS命令
  15. Win11正式版具体安装教程
  16. 关于Zion真实性问题的图文分析及其他 V1.06
  17. Get请求,参数为@RequestBody的http请求
  18. 期货ctp基础知识(合约,开仓,平仓,做多,做空,保证金,手续费)
  19. 2018网易未来科技峰会9月21日开启 走进新交互世界
  20. 【Auto.js】[Http代理] 讯代理 优质代理 示例

热门文章

  1. 迭代器的设计原则和Iterator Traits的作用与设计
  2. html无序列表文字换行,ppwjs之bootstrap文字排版:无序列表项不换行
  3. vue自定义组件递归实现树状_一道价值25k的腾讯递归组件面试题(Vue3 + TS 实现)...
  4. 模板多个列表级联_Excel办公技巧:使用power query快速合并同一工作簿的多个工作表...
  5. linux 内核udp编程,Linux下网络编程实现UDP,还有大量实例
  6. mysql+inser+select_在MySQL中结合INSERT,VALUES和SELECT
  7. java 64 access_64位操作系统 Java Odbc Access数据库连接
  8. 基于机器视觉的铁片轮廓检测
  9. Exchange Server2010系列之二:部署三合一角色(CAS+HT+MBX)
  10. WebBrowser自动点击链接 广告自动点击 Ads Auto Click