一,常用的接口类型:http,https,restful
1,Http与Https区别:
Http协议是超文本传输协议,信息是明文传输;
Https是具有安全性的SSL加密传输。
Http采用的是80端口连接;而Https使用的是443端口。
Https协议需要到ca申请证书,一般免费证书很少,需要交费,也有一些Web容器免费,如TOMCAT,而Http不需要。
Http连接相对简单,是无状态的;
而Https协议是由SSL+HTTP协议构建的可进行加密传输,身份认证的网络协议,它要比Http协议更安全。
2,https协议主要针对解决http协议不足:
通信使用明文(不加密),内容可能会被窃听
不验证通信方身份,因此可能遭遇伪装
无法证明报文的完整性(即准确性),所以可能已遭篡改
http+加密+认证+完整性保护=https
3,RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。
RESTFUL特点包括:
(1)每一个URI代表1种资源;
(2)客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;
(3)通过操作资源的表现形式来操作资源;
(4)资源的表现形式是XML或者HTML;
(5)客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。
二,何为Get请求?
格式:请求数参数写在网址后面,用"?"连接,多个参数之间用"&"连接。
如:https://reqres.in/api/users?page=2'',这是一个查询用户信息的api,page='',单引号里就是查询的参数, 为请求第几页的数据,如第二页。
场景:Get接口用于获取信息,多用于查询数据,如列表查询功能,点击查询按钮就调用一个get接口,然后把信息返回出来。
特点:
GET 请求可被缓存
GET 请求保留在浏览器历史记录中
GET 请求可被收藏为书签
GET 请求不应在处理敏感数据时使用
GET 请求有长度限制
GET 请求只应当用于取回数据
三,何为Post请求?
说明:向指定资源位置提交数据(如提交表单、上传文件)来进行请求,post请求可能会导致新资源的建立。
场景:如注册、上传、发帖等功能,如用户在豆瓣网站对某本书进行收藏、写笔记、发表评论
特点:
请求数据量大,安全性高。
POST 请求不会被缓存
POST 请求不会保留在浏览器历史记录中
POST 不能被收藏为书签
POST 请求对数据长度没有要求
Get和Post的区别
GET | POST | |
后退按钮/刷新 | 无害 | 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。 |
书签 | 可收藏为书签 | 不可收藏为书签 |
缓存 | 能被缓存 | 不能缓存 |
编码类型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。 |
历史 | 参数保留在浏览器历史中。 | 参数不会保存在浏览器历史中。 |
对数据长度的限制 | 是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。 | 无限制。 |
对数据类型的限制 | 只允许 ASCII 字符。 | 没有限制。也允许二进制数据。 |
安全性 | 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。 在发送密码或其他敏感信息时绝不要使用 GET ! | POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。 |
可见性 | 数据在 URL 中对所有人都是可见的。 | 数据不会显示在 URL 中。 |
四,接口测试类型与注意事项
1,手工测试
接口测试通常可以借助第三方工具来进行测试的,比如说,Get请求可以借助于浏览器地址栏发起请求,然后借助于浏览器的JsonView插件来进行解析,人工进行检测。
借助于Postman来进行请求接口,检测请求结果:https://www.postman.com/downloads/
2,代码请求
通过编码语言来封装对接口的请求,然后解析返回结果,对结果进行断言的方法。
通常的用法是:java+httpclient,python+requests
在接口测试初期,先封装对接口的请求,打印出请求结果进行人工检测;待接口测试稳定后,添加相应的检测断言,组织好测试用例就可以转变成接口自动化工程。进行多轮测试回归,线上回归和监控,达到自动化测试投入到测试流程中使用。当然要实施自动化测试的时候,必须提前做好架构设计,提高代码通用率,降低维护成本。
3,注意事项
(1)明确接口类型及参数
注意接口类型,请求参数,参数的要求,如必选和非必选,从而根据参数类型组织不同的测试用例。符合参数类型的数据,异常数据的处理,不同参数的组合,逐步转化成一个个测试用例。如果没有接口文档,请开发提供,实在提供不了就抓包分析,当然可能存在参数遗漏的情况。
(2)注意参数错误说明
接口参数有没有定义统一的错误说明,错误用例的判断提出统一的错误检测;严格意义上讲,在接口进行开发之前,必须进行相应的设计,基本接口错误代码则是必须要统一的,方便前后端联调 ,其他业务对接口的调用,问题的排查等。
(3)接口的使用场景
接口是内部使用,还是公开使用,内部使用时对错误的处理可能不够全面;由前端同学保证使用的正确情,测试出错误场景处理不足,开发也可能不处理。经产品确认没有问题,则可以不当作bug。测试同学也无需太过较真,只需要保证正常业务流程,相关调用方实现需求即可。
往
期
回
顾
第一节 ,接口自动化介绍与自动化效果
2020-08-28
![2e8637bd96205aac1f8051fddf8f9750.png](https://i-blog.csdnimg.cn/blog_migrate/9e77fd5b7320d6778e3437d24a4001a8.jpeg)
测试技术提升分享
2019-10-12
![74e07927c1fcd538c67647a917da3f1f.png](https://i-blog.csdnimg.cn/blog_migrate/f085f137dfb4822c5e8292d3e2d71cda.jpeg)
深度细考业务架构与特点,直击质量保障方案
2020-08-19
![b9dc17399f7e9ac6dadd42d6a994e42f.png](https://i-blog.csdnimg.cn/blog_migrate/1dbc4cca7e4b386b9380fe3bc88bb30d.jpeg)
测试团队效率问题思考
2020-08-17
![eed49518e5d71c82b4ad4ca907b8e99b.png](https://i-blog.csdnimg.cn/blog_migrate/6a5a039eefeb4dcdbc200589e229260e.jpeg)
测试开发的瓶颈在哪儿?
2019-11-13
![59524c2fd1a175186b93af769ee03a27.png](https://i-blog.csdnimg.cn/blog_migrate/f0f6f1093e8a9b84312b29dee15cd3c9.jpeg)
你离阿里P6资深测试开发还有多远?
2019-11-05
![2a1b6724f556dfbc25f7aec1775f0e78.png](https://i-blog.csdnimg.cn/blog_migrate/f100393c103c7a2c164e546376da3ffa.jpeg)
![07439a3e14b4fa693cf4c5a9af24a65f.png](https://i-blog.csdnimg.cn/blog_migrate/ef9dc5171f62c43b5b0c8a3ca1875a9a.jpeg)