接口测试工具及使用

接口:一种是程序内部的接口,一种是系统对外的接口;

程序内部接口:方法与方法之间,模块与模块之间 的交互,程序内部抛出的接口,比如一个系统的登录接口,发帖模块,要发帖必须先登录,那么这两个模块就有交互;

系统对外接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会给你分享数据,他只能给你提供写好的方法来获取数据,你引用他提供的接口就能使用他写的方法,从而达到数据共享的目的;

接口分类:webservice接口;http api接口;

webservice接口:是走sopa协议通过http传输,请求报文和 返回报文都是xml格式,测试的时候是通过工具才能进行调用和测试;

http api接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get 和post等方法,这是最常用的两种请求方式;

接口测试前,先搞清楚前端和后端的概念:

前端:对于web端来说,我们使用的网页,打开的网站,这都是前端,这些都是html,css写的;对于app端来说,就是我们用的app,android,object-C(开发ios)开发的,它的作用就是显示页面,一些漂亮的页面与简单的校验,比如说非空校验;

后端:我们在页面上操作的时候,这些业务逻辑,功能,是由后端来实现的,后端与前端就是通过接口在交互;

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

接口测试没有页面,通过接口规范文档的调用地址,请求参数,拼接报文,然后发送请求,检查返回结果;

接口测试的目的:更进一步提高产品质量;

接口测试必要性:1:可以发现很多页面操作发现不了的BUg;2:检查系统的异常处理能力,3:检查系统的安全性与稳定性;4:前端随便改变,接口测好了,后端不用变;

接口测试流程:需求评审,熟悉业务和需求;开发提供接口文档;编写接口测试用例;用例评审;提测后开始测试;提交测试报告;

接口规范文档:接口说明,调用url,请求方式(get、post),请求参数,参数类型,请求参数说明;返回参数说明;

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

接口测试:

http接口

1:接口请求报文拼接:  

(1):url?param=value&param2=value   这是最简单的一种,问号前面是请求url, 后面是请求的参数名和参数数值,多个参数用&来连接;

(2):如果 是 入参 json串的,那就不能拼接参数,需借助工具来完成,如 postman,jmeter;

get 和 post 请求:

get: 直接在浏览器中输入,在浏览器中直接能请求到的;

post: 需借助工具来发送;

两者区别:

1:get 使用url 或 cookie 传参 ; post 将数据放在 body 中;

2:get 的url 有长度限制;post 的数据可以非常大;

3:post 比get 安全,因为数据在地址栏上是不可见的;

4:一般get 请求用来获取数据;post 请求用来发送数据;

http 状态码:每发出一个http请求之后,都会有一个响应,会有一个状态码来标识这个请求是否成功,

      200 2开头的都表示请求发送成功;

      300 3开头是代表重定向,

      400 代表客户端发送的请求有语法错误,401 代表访问的页面没有授权,403 表示没有权限访问这个页面,404表示没有这个页面,

      500 5开头的代表服务器有异常,500 表示服务器内部异常,504表示服务器端超时,没有返回结果;

webservice 接口

      直接在soapui中导入webservice地址 或是 wsdl 文件,就可以看到这个webservice里面的所有接口,也有报文,直接填入参数调用看返回结果就行;

通用接口用例设计:

  通过性验证:首先要确定这个接口功能是好使的,也就是正常的通过性测试,按照接口文档上的参数,正常传入,是否可以返回正确的结果;

  接口安全性: 1:绕过验证,比如购买一个商品,它的价格是300元,那在提交订单的时候,把这个商品的价格改为3元,后端有没有做验证;改为-3呢?

         2:绕过身份授权,比如 修改商品信息,这应该是管理员才能修改,如果传一个普通用户,能不能修改成功?

         3:参数是否加密,比如是登录接口,用户名与密码是不是加密,如果不加密,请求被拦截,信息就被获取了,加密规则是否容易破解了,

         4:密码安全规则,密码的复杂程度校验;

  异常验证:就是不按照接口文档的要求输入参数,来验证接口对异常情况的校验,如必填的参数不填,输入整数类型时传入字符串类型,长度是10,传入大于10位的,

       总结三点: 必传 非不传,参数类型,入参长度。

  

猜你喜欢

转载自www.cnblogs.com/feimao-zm/p/9071482.html