接口测试基础知识
get和post区别
GET在浏览器回退时是无害的,而POST会再次提交请求;
GET产生的URL地址可以被Bookmark,而POST不可以;
GET请求会被浏览器主动cache,而POST不会,除非手动设置;
GET请求只能进行url编码,而POST支持多种编码方式;
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留;
GET请求在URL中传送的参数是有长度限制的,而POST没有;
对参数的数据类型,GET只接受ASCII字符,而POST没有限制;
GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息;
GET参数通过URL传递,POST放在Request body中。
个人理解:GET参数放在URL中,并且只请求一次;而POST放在Request body中,请求两次。所以GET只能进行URL编码了,参数就会被完整保留历史记录了,长度就有限了,数据类型只能是ASCLL字符了,不安全不能传递敏感信息了也就相继产生,剩下也就记一下POST回退时会再次请求,GET的URL地址可以被记录书签,GET会被主动保存缓存。
状态吗
状态码:200响应成功 3xx 重定向类 4xx 客户端错误类 5xx服务器错误类
200,表明该请求被成功地完成,所请求的资源发送到客户端。
201,提示知道新文件的URL。
202,接受并处理,但处理未完成。
203,返回信息不确定或不完整。
204,收到请求,但返回信息为空。
205,服务器完成了请求,用户必须复位当前已经浏览过的文件。
206,服务器已经完成了部分用户的GET请求。
300,请求的资源可在多处获得。
301,本网页被永久性转移到另一个URL。
302,请求的网页被重定向到新的地址。
303,建议用户访问其他URL或访问方式。
304,自从上次请求后,请求的网页未修改过。
305,请求的资源必须从服务器指定的地址获得。
306,前一版本HTTP中使用的代码,现已不再使用。
307,声明请求的资源临时性删除。
400,客户端请求有语法错误。
401,请求未经授权。
402,保留有效ChargeTo头响应。
403,禁止访问,服务器收到请求,但拒绝提供服务。
404,可连接服务器,但服务器无法取得所请求的网页,请求资源不存在。
405,用户在Request-Line字段定义的方法不被允许。
406,根据用户发送的Accept,请求资源不可访问。
407,类似401,用户必须首先在代理服务器上取得授权。
408,客户端没有在用户指定的时间内完成请求。
409,对当前资源状态,请求不能完成。
410,服务器上不再有此资源。
411,服务器拒绝用户定义的Content-Length属性请求。
412,一个或多个请求头字段在当前请求中错误。
413,请求的资源大于服务器允许的大小。
414,请求的资源URL长于服务器允许的长度。
415,请求资源不支持请求项目格式。
416,请求中包含Range请求头字段,在当前请求资源范围内没有range指示值。
417,服务器不满足请求Expect头字段指定的期望值。
500,服务器错误
501,服务器不支持请求的功能。
502,网关错误。
503,无法获得服务。
504,网关超时。
505,不支持的http版本。
接口测试
个人理解:接口测试就是根据接口文档,查看返回的数据是否是我们的预期,判断这些数据是否是预期,需要了解项目的数据库,然后根据查询数据库,看接口返回的数据和数据库中查出来的是否一致。
接口概念:接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等
接口测试的分类
分为模块接口测试和web接口测试。
模块接口测试是单元测试的基础,它主要测试模块的调用与返回,测试需要遵循的要点:
1、检查接口返回的数据是否与预期结果一致;
2、检查接口的容错性,假如传递数据的类型错误时是否可以处理。例如某接口支持的数据是整数,那么传递的如果是小数或字符串呢?
3、接口参数的边界值。例如传递的参数足够大或为负数时,接口是否可以正常处理。
4、接口的性能,接口处理数据的时间也是需要测试的。牵扯到内部就是算法与代码的优化。
5、接口的安全性,如果是外部接口的话,这点很重要。
web接口测试分为两类:服务器接口测试和外部接口测试。
服务器接口测试:是测试浏览器与服务器的接口。这个很容易理解,我们知道web开发一般分为前端和后端,前端开发人员用HTML/css/javascript等技术。后端开发人员用java/php/python/ruby等各种语言。用户数据的数据是输入到前端页面上的,怎样把这些数据传递到后台的呢?通过http协议的get与post请求来实现前后端的数据传递。这也可以认为是接口测试,调用的登录接口还是查询接口,传参的是用户密码还是搜索关键字。
外部接口测试:这个很典型的例子就是第三方登录,比如你做的新系统免于新用户重新注册的麻烦提供第三方登录,那么用户在登录的时候调用的就是第三方登录的接口,由第三方验证用户名和密码并且返回给当前系统。
web接口测试的测试要点:
1、请求是否准确,默认请求成功是200,如果请求错误也能返回404、500等
2、检查返回数据的正确性与格式;json是一种非常常见的格式。
3、接口的安全性,一般web都不会暴露在网上任意被调用,需要做一些限制,比如鉴权或认证。
4、接口的性能,web接口同样注重性能,这直接影响用户的使用体验,如果我搜索一个关键字半天结果都没返回,果断弃用。
接口是指外部系统与系统之间以及内部各子系统之间的交互点。包括外部接口、内部接口,内部接口又包括:上层服务与下层服务接口、同级接口。
常见web接口:一类是http协议的接口,另一类是web service接口(如soup、rmi、rpc协议)。本文主要介绍http请求接口。
常见的http请求方式包括:get(查)、post(增),除此之外还有put(改)、delete(删)等。