接口测试(测试用例),接口测试用例怎么编写
一,什么是接口?
在计算机中,接口是计算机系统中两个独立的部件进行信息交换的共享边界
程序内部的接口(程序接口):方法与方法之间,模块与模块之间的交互、.一般需要使用与开发程序接口相同的编程语言,通过对类、 方法和函数的调用,验证其返回结果是否正确来进行测试 、由开发人员自己完成,也可以由有良好编程能力的测试人员来做
系统对外的接口(协议接口):不涉及底层程序、 可以通过各种工具将网络数据发送到接口从而得到接口的响应信息,达到测试的目标、 由测试人员完成,通常所说的的接口测试主要是对协议接口的测试
二,协议接口分类-按系统不同的调用方式
系统与系统之间的接口
系统内部,服务与服务之间的调用
下层服务对上层服务的接口
三、URL统一资源定位器
四,HTTP协议
1. Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议
无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接
媒体独立的
无状态:服务器没有保存客户的状态,客户端必须每一次带上自己的状态去请求服务器。
2.HTTP请求的构成:请求行、请求头、空行、请求体
3.HTTP请求方法
4.HTTP请求头
5.cookie概念
某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息
自动登录
广告精准投放
6.HTTP响应的构成 :状态行、响应头、空行、响应正文
7.HTTP状态码
HTTP状态码由3个数字组成,第一个数字定义了状态码的类型
8.HTTP响应头
9. get和post的区别:
一、功能不同 1、get是从服务器上获取数据。 2、post是向服务器传送数据。
二、过程不同 1、get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。 2、post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
三、获取值不同 1、对于get方式,服务器端用Request.QueryString获取变量的值。 2、对于post方式,服务器端用Request.Form获取提交的数据。
四、传送数据量不同 1、get传送的数据量较小,不能大于2KB。 2、post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。 五、安全性不同 1、get安全性非常低。 2、post安全性较高。 如果没有加密,他们安全级别都是一样的,随便一个监听器都可以把所有的数据监听到。
10.cookie 和session 的区别:
1、数据存放位置不同: cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、安全程度不同: cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。
3、性能使用程度不同: session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。
4、数据存储大小不同: 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie,而session则存储与服务端,浏览器对其没有限制。
5、会话机制不同 session会话机制:session会话机制是一种服务器端机制,它使用类似于哈希表(可能还有哈希表)的结构来保存信息。 cookies会话机制:cookie是服务器存储在本地计算机上的小块文本,并随每个请求发送到同一服务器。 Web服务器使用HTTP标头将cookie发送到客户端。在客户端终端,浏览器解析cookie并将其保存为本地文件,该文件自动将来自同一服务器的任何请求绑定到这些cookie。
五、接口测试
概念:测试系统组件间接口的一种测试,主要用于测试系统与外部其他系统之间的接口,以及系统内部各个子模块之间的接口
1,接口测试的意义
更早地发现问题,缩短产品研发周期
发现更底层的问题
前端随便变,接口测好了,后端不用变
检查系统的安全性、稳定性
2,接口测试的测试重点
3.接口测试流程
1根据开发人员提供的接口文档分析需求 2,设计测试用例 3,利用测试工具(jmeter、postman)执行接口测试用例 5,接口缺陷管理与跟踪 6,提交测试报告
4.接口测试流程-用例设计
接口测试的用例设计与系统测试用例设计有相似之处。都是根据业务逻辑来设计用例,使用的方法如:边界值法,等价类法等基本测试方法
通过性验证
参数组合
接口安全:绕过正常值验证 绕过身份授权验证 参数是否加密,加密规则是否容易破解
异常验证:必传非必传 参数类型 入参长度
一、用例设计1
1、接口测试概念
接口测试:测试系统间接口的一种测试,测试的对象主要是接口,主要是测试外部系统与所测系统之间以及内部系统之间的交互点
2、接口测试方法
a、可以通过开发脚本代码进行测试
b、可以通过开源免费的接口调用调试工具测试,如:Postman等。
c、可以通过App手动测试,结合抓包工具分析,如:Fillder/Charles等
3、接口测试范围
接口范围包括:
一、被测项目中同层之间的接口(如DAO层、Service层),一个接口调用了其他的接口。
二、外部系统与系统之间的交互点(如一个App调用了第三方支付宝的API)
三、各个子系统之间的交互点(如App客户端调用了服务端的Http接口)
被测接口范围:
通常接口会很多,接口测试范围的筛选,参考测试人力资源、项目特点、接口重要性与优先级来进行。其中第一种属内部接口,构造测试稍复杂需开发配合实施,通常优先覆盖第二、三种接口
接口测试的重点测试范围:
优先测试覆盖核心业务,复杂业务的接口
4、如何设计接口测试用例
接口测试出发点是被测接口逻辑存在错误,参考这个为出发点,更容易发现问题
设计接口测试用例,我们可简单的考虑两个基本要素,即:入参、出参,正确/错误的入参,逻辑判断后,接口是否做出正确的处理,返回正确的出参
接口测试用例有3类(逻辑测试,异常测试,路径测试):
1)逻辑测试:主要是根据开发提供的接口文档来设计测试用例,接口文档包含的要素(前提条件,输入参数,参数类型,业务逻辑,返回输出描述等),此类主要测试在正常输入的情况下,是否能得出正确的输出结果。主要使用的用例设计方法是等价类划分,边界值等
2)异常测试:接口逻辑的测试中主要测试接口正常逻辑,即对外提供的接口服务是基本可用的,但仅逻辑测试不能保证数据的安全及程序接口在异常情况下的逻辑处理的正确性
(a) 空值,null;
(b) 参数属性(如:未赋值的参数)
(c) 异常业务参数(如:构造不满足业务异常业务参数)
(d) 参数个数、参数类型错误(如:接口文档中定义必填参数2个int,输入参数仅1个,类型非int)
3)路径测试:当被测接口的实现方法中,判断逻辑复杂分支多,且判断中又调用了其他的接口,此时必须要进行路径覆盖测试
5、接口测试关注点
6、接口自动化测试工具
1)Java(HttpClient) + Junit/TestNG;
2)Jmeter
3)SoapUI
4)Python requests/urllib 库;
......
二、用例设计2
1、优先级--针对所有接口
1.暴露在外面的接口,因为通常该接口会给第三方调用
2.供系统内部调用的核心功能接口
3.供系统内部调用非核心功能接口
2、优先级--针对单个接口
1.正向用例优先测试,逆向用例次之(通常情况,非绝对)
2.是否满足前提条件 > 是否携带默认参值参数 > 参数是否必填 > 参数之间是否存在关联 > 参数数据类型限制 > 参数数据类型自身的数据范围值限制
3、设计分析
通常,设计接口测试用例需要考虑以下几个方面:
1.是否满足前提条件
有些接口需要满足前置条件,才可成功获取数据。常见的,需要登陆Token;
逆向用例:针对是否满足前置条件(假设为n个条件),设计0~n条用例
2.是否携带默认值参数
正向用例:带默认值的参数都不填写、不传参,必填参数都填写正确且存在的“常规”值,其它不填写,设计1条用例
3.业务规则、功能需求
这里根据实际情况,结合接口参数说明,可能需要设计n条正向用例和逆向用例
4.参数是否必填
逆向用例:针对每个必填参数,都设计1条参数值为空的逆向用例
5.参数之间是否存在关联
有些参数彼此之间存在相互制约的关系;
逆向用例:根据实际情况,可能需要设计0~n条用例
6.参数数据类型限制
逆向用例:针对每个参数都设计1条参数值类型不符的逆向用例
7.参数数据类型自身的数据范围值限制
正向用例:针对所有参数,设计1条每个参数的参数值在数据范围内为最大值的正向用例
逆向用例:针对每个参数(假设n个),设计n条每个参数的参数值都超出数据范围最大值的逆向用例;针对每个参数(假设n个),设计n条每个参数的参数值都小于数据范围最小值的逆向用例
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~