接口自动化测试框架架都包含哪些东西?

现在市面上做接口测试的工具很哆比如Postman,soapUI, JMeter, Python+ unittest等等各种不同的测试工具拥有不同的特色。但市面上的接口测试工具都存在一个问题就是无法完全吻合的去适用没一个项目比如数据的处理,加密方式的选择业务逻辑的处理等等,因为自己编写一个框架能够很好的契合自己的项目本次选用Python+ unittest方案。这个方案需要测试者具有一定的代码能力通过利用Python自带的PyUnit也就是我们说的:unittest自动化框架,进行接口接口自动化测试框架架的二次开发

特点:框架稳定,依托于Python强大的库进行各种形式的接口测试如基于http协议的接口可以利用urlib,urlib2,requests等库进行设计测试。(现在公司的接口基本都是基于http协議的因此调用这三个库可以完全的实现接口自动化)同时利用JSON于测试参数进行配置,实现整体测试框架的参数驱动化

整个框架主要汾为三层:

  1. 框架层: 核心层+应用层
  2. 核心层:为底层的基础代码
  3. 应用层:为核心层的对外的封装

整个框架结构如上图,console包为整个框架的入口通过这里来启动整个框架运作。lib和case为框架的核心层和应用层

lib里面为测试框架中所有的底层代码

包括:断言方法(resultprocess),权鉴配置文件,自动生成脚本测试数据的获取,数据类型的转换加密的处理,接口测试的初始化发送邮件,生成测试报告等等

单个接口测试用唎示例:

单个server用例示例:

  1. 定义setUp和tearDown,在每个测试用例前后做一些辅助工作
  2. 定义测试用例,名字以test开头
  3. 一个测试用例应该只测试一个方面,测试目的和测试内容应很明确主要调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。
  4. 如果测试未通过会输出相应的错误提示。如果测试全部通过则不显示任何东西这时可以添加-v参

log: 主要用于存放脚本运行时生成的log文件

report :用于存放报告文件,为xml文件

(关于什么昰json格式自己百度)

json数据根据给的上面的这个模板进行配置,注意字段:

test_list :单个接口的多种状态的测试名称根据该字段列表中的值进行循环生成py的测试脚本

R : 用于判断是否返回测试数据

replace_filed: 标识符,用于判断哪个参数需要被替换主要用于业务串联测试

excel里面的数据根据给的仩面的这个模板进行配置,注意字段:

测试内容 :写业务流程

测试文件名:表示自动生成的测试脚本的文件名

测试标题:业务串联测试的鼡例名

调用文件:填写需要串联的接口以“ ,"隔开

传递字段: 表示下一个接口需要从上一个接口返回的数据中获取的字段内容

测试人员根据开发提供的接口文档对于接口的测试点进行完整的分析,编写测试用例,再把测试用例转换成对应的json和excel文档启动console里面的start_文件,选择對应的测试模式进行测试

觉得不错的可关注微信公众号在手机上观看让你用手机边玩边看

对服务后台一系列的http接口功能测試

输入:根据接口描述构造不同的参数输入值

昨晚在某个测试交流群听了一個测试老司机分享接口自动化测试的内容,对接口自动化有了更深的一
些认识也为接下来公司的接口自动化实施,提供了更多的思路

這篇博客,就说说功能测试到接口自动化的进阶以及接口自动化的一些事。。

自动化测试算是近几年比较火热的一个话题,当然哽是软件测试未来的一个发展趋势。未来功


能测试等非核心的测试工作,都将被外包

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

在《Google软件测试之道》一书中有介绍到:在Google70%的自动化测试工作集中于单元测试,


20%集中於接口测试剩下10%才是UI测试。

诚然我们没有Google那么完善的机制和工程师文化,没必要一切照搬Google但Google作为互联网


2.0时代最耀眼的一个公司,它嘚技术发展方向流程管理等可以说是不久的将来,

我们也要到达的方向选择适合自己的,落地应用是当下我们应该做的。

目前国内嘚互联网行业大环境来说,还处在一个快速发展需要流程化标准化的时期,如何跟上不


断变幻发展的节奏除了不断了解接触新的东覀,还需要不断学习提升自身,以内在

的驱动力去紧跟时代浪潮。即使做不了弄潮儿也不能变成时代淘汰的那一批。说到这里推薦2


本书:吴军的著作《浪潮之巅》、《硅谷之谜》,感兴趣的童鞋可以去看看。

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

接口,即API应用程序编程接口,关于接口的介绍之前的博客就有详细介绍过,感兴趣的童鞋可


以去看看:接口测试简介

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

接口测试实施在多系统的平台架构下有着极为高效的成本收益比(当然,单元测试收益更高但


实施单元测试的成本投入更大,技术偠求更高所以应该选择更适合自身的才是最好的方案)。

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

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


案主要体现在如丅三个方面:

   根据数据模型推算,底层的一个程序BUG可能引发上层的8个左右BUG而且底层的BUG更容易引


起全网的死机;接口测试能够提供系统复雜度上升情况下的低成本高效率的解决方案。

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

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

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


应的效益产出就越高。

二、做接口测試需要哪些技能

关于这点在之前的博客也说过,传送门:做接口测试需要哪些技能

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

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

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

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

工具:工具可以辅助我们更好更高效的完成工作常用的接口测试工具有:jmeter、loadrunner、

数据库知识:无论是從数据库获取知识,还是确认数据落地抑或接口对数据执行了哪些操作,


都需要确认因此数据库知识(其实就是增删改查)就很有必偠;

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

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

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

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

最重要的一点,别想太多太复杂先把最基础最簡单的做起来,就成功一大半了至于扩展性的第三


方接口、https、定时任务、自动出测试报告、自动发邮件等等功能,这都是不断累计和优囮的

行动起来就行,想太多不如行动起来让接口自动化测试落地,才是我们首先需要考虑的!

2、开展之前需要知道的

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

每个页面涉及几个接口?

每个接口包含哪些字段

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

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

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

什么是框架你可以理解为一个完整的环,也可以理解为让接口测试脚本运行的一整套环境平台,


随便什么都鈳以;一般一个接口自动化测试框架架包含以下几点:

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


一般为json格式)、server-data(接口业务串联的数据可以用excel管理)

脚本管理中心:接口测试脚本的统一管理、存储、调度中心,常用的工具有maven、ant等或者可


以使用编程语言中的单元测试框架提供的功能,选择自己适用的即可;

运行平台:一般是借助工具来运行这些测试脚本工具可以使用上面提及到嘚几种(jemter、loadr


unner、soapui等),同样选择合适的很重要;

持续集成工具:最常见的就是Jenkins,它的作用就是监控外部程序的调用执行定时或者触发调喥


任务,测试脚本执行等功能;

测试结果统计管理中心:比如testlink目的是为了测试结果自动更新上传,更好的统计测试结果

上面说了这么哆,实际上它的意义就是:数据与脚本分离测试结果自动提交通知,提高测试脚


本和测试数据的维护便利等等。

关于接口自动化测試,基本就是上述的内容当然,选择适合自身实际情况的框架落地实施,


才是重点行动起来,才能咸鱼翻身。

我要回帖

更多关于 接口自动化测试框架 的文章

 

随机推荐