Postman做接口测试知识点梳理
一、介绍
1、进行接口测试和调试
2、大部分公司做接口自动化,就是能正常请求接口即可
例如:公司接口数量庞大,做接口自动化也是测试住流程
3、Postman优点:容易学习、容易扩散
缺点:接口数量庞大用不了
4、不支持连接数据库,不支持二次共同开发扩展
二、当没有接口文档时候,测试人员如何测试?
3知道
了解HTTP接口中包含的数据结构时会发现:HTTP协议的工作原理是基于客户端与服务器之间的交互机制,在此过程中客户端向服务器发送特定的指令并接收相应的回应信息
具体来说:HTTP通信主要包括两方的基本操作——发送请求数据与接收回应数据
2、还需要知道各个接口的参数都是什么意思?
3、需要知道接口怎么承载数据?答:请求url可以携带请求数据
(其中
1)路径参数:请求地址中包含请求参数、
2)查询参数:?后面用&符号去连接参数;
请求头偶尔也会包含少量的数据(较少的情况),主要用于传输tokens。例如,在全链路压力测试过程中,在某个动作触发后会通过headers将数据发送至后端处理。
请求体携带请求参数(最大值):采用表单格式如 orderid=*** & password=***、采用JSON格式如{"username":"datian","password":"123456}
)
三、学会与开发人员沟通,形成良好的合作关系,避免被坑
四、接口测试,涉及抓包工具有:
fiddler建议win使用
charles建议mac使用
fiddler everywhere建议win使用
tcpdump功能强大,但不好用
wireshark功能强,新手不友好(能抓底层数据包:数据链路、网络、传输、应用)
备注:
为了更好地掌握 ISO/OSI 模型的具体组成:包括物理层(底层)、数据链路层面(中层)、网络层面(上一层)、传输层面(再上一层)、会话层面(顶层)、表示层面(中间一层)以及应用层面(如 HTTP 协议接口测试)。
2、为什么不抓会话和表示层呢?因为会话和表示没有协议与之对应
五、做接口测试要知道的三个大佬:cookie、token、session
这些都可以理解为令牌,更通俗一点就是银行卡
如何判断两个接口是否存在关联性?你可以通过实践来验证这一情况;此外,你也可以咨询开发者获取相关信息。这可能意味着它们在代码层面存在联系。
1、存放及使用:
Cookie数据被存储于客户的浏览器(客户端)上; Cookie则是一份由服务器传输给用户的、位于本地的小型数据块,在用户的浏览器下次向同一服务器发起新请求时会被携带并传输回该服务器处理。
2)将Session数据存储于服务器中;当用户首次向服务器提出请求时,服务器会在接收到用户的相关信息后创建对应的Session,并在返回结果时发送该会话的唯一标识符SessionID给浏览器。随后,浏览器接收并存储来自 server返回的SessionID信息。
3)Token信息被存储在客户端端,并且该数据标识符主要用于作为接口测试过程中的身份认证标识符。通常情况下,在完成登录操作后才能访问并获取到该Token;随后,在每一次发起接口请求的过程中都需要携带该Token参数参与运算。
2、安全及性能:
由于 Cookies 是不可数名词,在这种情况下应使用复数形式 "Cookies" 来保持句子的一致性和正式性。因此:"Others can analyze stored local cookies and perform cookie spoofing."
由于 Session 是可数名词且通常用于指代一种数据存储方式,在这种上下文中使用单数形式 "Session" 更符合语境:"Session is more secure than cookies."
为了更好地表达时间范围的概念,在这种上下文中使用 "be stored on the server for a specified period of time" 能提供更清晰的时间框架:"Be stored on the server for a specified period of time."
为了使句子更加简洁且逻辑更加清晰,在这种情况下使用主动语态并分开展示建议与具体做法:"It is advisable to store login and other sensitive information as Session data, while less critical details can be stored in Cookies."
当流量激增时, 会显著影响服务器的性能. 为了解决缓解服务器负载的问题, 在适当的时机考虑采用Cookie.
3)相比 Session 来说 Token 的安全性更好 因为每个请求都带有签名 并且能够有效防止来自外部的监听和重放攻击 而在保证通信安全方面 Token 的实现则依赖于链路层的支持
六、测试一个添加类的接口是否请求成功
核查数据是否确实被添加或修改至数据库中;若需要跨越多个表进行操作,则采用第二种方法;若无权限进行操作,则同样适用第二种方法。
2)调用查询接口看,是否有自己本次添加的请求数据。
备注:
在请求添加接口的过程中会遇到一个唯一的约束条件 有两种方法可供采用 第一种是每次进行添加之前 明确数据库中需要插入的数据信息 需要注意的是这种方法虽然可行但会产生所谓的脏数据问题因此不建议使用 第二种方法是在插入数据的同时加入随机的时间戳字段(如{{$timestamp}})。
七、postman处理数据(难点)
使用jQuery的cheerio核心来对html代码进行操作

接口关联


