- 接口自动化测试与界面自动化测试
![](https://api2.mubu.com/v3/document_image/9993ee4c-aa70-4d21-baf2-2b4fa5083c83-9269785.jpg)
- 接口自动化测试比界面自动化测试收益高,优先级高。
- 界面开发、后台业务逻辑的开发是不同的人,前后台开发的进度不一样。接口测试让测试前移,在界面尚未开发出来时,测试人员能投入测试。投入越早,发现缺陷修复成本越低。
- 接口测试可以发现一些界面发现不了的问题。
- 界面对参数做了检查,非法的值限制输入。通过接口可以做一些异常测试。
- 淘宝:APP版本、小程序版本、网页版本、平板、IOS,功能一样,对应后台服务是一样的。
- 数据存储、业务逻辑的处理在服务端完成,通过接口测试可以模拟更多场景。
- 接口测试成本低,收益高。界面是频繁变化的。后台的接口一旦固定,很好变化。
- 接口测试原理
- 用工具或代码模拟客户端向服务器发送请求报文,服务器接收请求报文后,对相应的报文做处理并将处理的结果返回给工具或代码,工具或代码对返回的结果进行校验。
- 接口测试点(重点)
- 参数测试
- 必填的参数、可选参数,必填参数不填,或者必填与可选之间参数组合
- 业务逻辑
- 业务交互的测试:提交订单,先去校验用户有没有登录。
- 返回值的测试
- 报表类的接口,数据库中有大量数据,通过(算法)接口生成一个报表/趋势图,如何测试
- 安全测试
- 敏感信息是否加密,密码、简单的加密,同一个密码每次加密后的字符串是相同的。
- 敏感信息不能记录到日志。pwd(操作日志、系统日志)
- 接口防攻击的处理,在1分钟内调用100次以上的话,认为受到攻击,限制IP/用户访问系统。
- 参数前后台都要去校验。
- 前台的校验(界面测试)是为了提示给用户,防止用户输入不合法的数据,且出错时能有提示,
- 后台的校验(接口测试)是防止黑客绕过前台,通过接口直接访问后台,如果后台不校验,非法数据可以直接写入数据库,且遭到攻击。
- HTTP协议
- 协议特点:
- 无连接
- C/S 结构,基于TCP/UDP,长连接的,登录后,保持连接的状态。
- B/S结构,基于HTTP,短连接,连接只在一发一收时保持,收发结束的时候连接断开。
- 无状态
- 因为时短连接,本次发送请求前,不知道以前发送过什么。
- 请求
- 请求报文
- 请求行,方法,url(get请求的参数在url中),协议版本
- 示例
- post请求,百度翻译
- Content-Type: application/x-www-form-urlencoded; charset=UTF-8
- User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36
- 请求方法
- get与post差别
- 传参的方式不一样
- get把参数放到请求头中,url?key=value&key=value&key=value
- get请求不安全,post请求安全
- get请求的参数在url中,url有长度的限制,但是post参数在请求体,没有参数的限制。
- get请求传的参数是key=value格式的,post可以传任意类型的参数,content-type设置参数的类型。
- get请求和参数可以保存成浏览器的历史记录,post的参数保存不到历史记录中。
- Cookie与Session
- HTTP是无连接、无状态的
- 比如访问淘宝,A用户浏览商品,B用户将商品加购物车。系统怎么判断把商品加到B的购物车,而不是A的购物车。
- 用户识别的技术:Cookie、Session、Token
- Cookie:识别客户身份的信息记录在客户端的。(身份证)
![](https://api2.mubu.com/v3/document_image/e1f58b0c-40e8-46b7-a2b0-5f323f691c27-9269785.jpg)
- 过期时间:如果不设置过期时间,称作会话Cookie,浏览器关闭的时候失效;设置过期时间后,称作持久Cookie,等到过期时间时失效。
- 其他
- Cookie存放在客户端的本地,同一个用户多次登录、多台机器上登录,服务器分配的Cookie信息不同。
- Session:识别客户身份的信息记录在服务器端,客户端有一个SessionId(比如某个工厂,大门处的客户列表,来访的人在列表中可以进入)
- Cookie与Session对比
- Cookie保存在客户端,Session在服务器,Session更加安全。
- Session在服务器的内存中、数据库、文件,如果用户量比较大,会占用服务器的资源。
- Cookie有效期比较长,Session有效期短。
- Token:
- 客户端频繁登录服务器,服务器每次判断用户名密码是否正确,查询比较频繁,服务器压力大。
- HTTP与HTTPs的差别
- 使用HTTPs的网站要去数字认证机构申请CA证书,证明服务器与浏览器的身份。证书需要年费。
- 默认端口号不一样。HTTP端口号是80,HTTPs端口号是443。
- HTTPs加重了服务端的负担,降低了用户的访问速度。
- Fiddler
- 对Requests加断点:比如注册接口,界面对密码做了限制,只能输入5~18位的密码,超过这个范围的不能输入。要测试密码异常的场景,可以用Fiddler先抓到正常的报文,然后将参数的值修改为非法的,比如19位的密码后,再发送。看服务器是否能正常处理。
|