作接口测试须要哪些技能

一、什么是接口测试?

定义:测试系统组件间接口的一种测试。主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点,重点是检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等;mysql

目的:测试接口的正确性和稳定性;算法

原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文作处理并向客户端返回应答,客户端接收应答的过程;sql

重点:检查数据的交换,传递和控制管理过程,还包括处理的次数;数据库

核心:持续集成是接口测试的核心;编程

优势:为高复杂性的平台带来高效的缺陷监测和质量监督能力,平台越复杂,系统越庞大,接口测试的效果越明显(提升测试效率,提高用户体验,下降研发成本);安全

用例设计重点:一般状况下主要测试最外层的两类接口:数据进入系统接口(调用外部系统的参数为本系统使用)和数据流出系统接口(验证系统处理后的数据是否正常);服务器

PS:设计用例时还须要注意外部接口提供给使用这些接口的外部用户什么功能,外部用户真正须要什么功能;oracle

 

二、接口测试须要会什么?框架

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

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

③了解协议的基本内容,包括:通讯原理、三次握手、经常使用的协议类型、报文构成、数据传输方式、常见的状态码、URL构成等;

④经常使用的接口测试工具,好比:jmeter、loadrunner、postman、soapUI等;

⑤数据库基础操做命令(检查数据入库、提取测试数据等);

⑥常见的字符类型,好比:char、varchar、text、int、float、datatime、string等;

 

三、如何学这些技能?

①系统间业务交互逻辑:经过需求文档、流程图、思惟导图、沟通等不少渠道和方式;

②协议:推荐《图解http》这本书,内容生动,相对算是入门级的书籍,其余的还有《图解tcp、IP》等;

③接口测试工具:百度这些工具,而后你会发现,好多的教学博客、相关问题解决方案、以及一些基于工具的书籍,固然,选择合适的书很重要;

④数据库操做命令:学习网站(W3C菜鸟教程)、教学博客,以及一些数据库相关书籍,入门级推荐:《mysql必知必会》、《oracle PL/SQL必知必会》等

⑤字符类型:仍是百度,有句话这么说:内事不决问百度,外事不决问Google。。。

 

四、如何获取接口相关信息?

通常的企业,都会由开发或者对应的技术负责人员编写接口文档,里面会注明接口相关的地址、参数类型、方法、输入、输出等信息,若是没有,想办法获取。。。

接口文档八要素:

封面:封面最好是本公司规定的封面,有logo,内容标题,版本号,公司名称,文档产生日期;

修订历史:表格形式较好些,包括:版本、修订说明、修订日期、修订人、审核时间审核人等;

接口信息:接口调用方式,经常使用的GET/POST方式,接口地址;

功能描述:简洁清晰的描述接口功能,好比:接口获取的信息不包括哪些;

接口参数说明:每一个参数都要和实际中调用的同样,包括大小写;参数的含义言简意赅的说明,格式,是string 仍是int 仍是long等格式;

说明部分,说明参数值是须要哪里提供,并详细说明参数怎么生成的,例如时间戳,是哪一个时间段的,参数是否必填,一些参数是必需要有的,有些是可选参数等;

返回值说明:

①最好有一个模板返回值,并说明每一个返回参数的意义;

②提供一个真实的调用接口,真实的返回值;

调用限制,安全方面:

加密方式,或者本身公司一个特殊的加密过程,只要双方采用一致的加密算法就能够调用接口,保证了接口调用的安全性,好比常见的md5;

文档维护:文档在维护的时候,若有修改必定要写上修改日期,修改人,对大的修改要有版本号变动;

 

五、如何进行进行接口测试?

若是经历了上面的几个场景以后,关于接口测试如何作,相信大部分人都应该能够进行。至于采用何种工具,以及执行测试中遇到的问题,请百度!!!

博客、文库、各大测试群的群文件,教程书籍,不少不少,只要稍微动动手,动动脑子,通常的问题均可以获得解决。。。

麻省理工校训:Mens et Manus (Mind and Hand)————动手,动脑!!!

 

六、自动化接口测试

前面说过,接口测试的核心就是持续集成,而自动化测试,能够提高工做效率,下降成本,接口测试的自动化,就显得颇有必要。

至于接口自动化的框架,能够说有不少种,根据使用的工具不一样、我的擅长的编程语言、工做环境须要等状况,灵活性较大。

我我的比较熟悉的框架:jmeter+maven+Jenkins+mysql+dubbo。。。

 

七、其余

工程师指具备从事工程系统操做、设计、管理、评估能力的人员。工程师的称谓,一般只用于在工程学其中一个范畴持有专业性学位或相等工做经验的人士。 ————百度百科

IT行业,是一个知识密集型产业,软件测试工程师,应该也具备相应的知识、技能,即:核心竞争力。

持续学习必不可少,不要让本身很容易被替代!!!

 

新技术的正确学习方式:

 

 

 
 
 
posted @ 2017-07-03 22:01 老_张 
相关文章
相关标签/搜索