最近一直都在做接口自动化测试,在面试的时候也有很多人在用jmeter做接口测试,虽然这也是一个方法,但是感觉过于被动,灵活度不高,所以在慕课网上看了一下基础的接口测试的视频,自己也把接口的一些基础知识点,整理了一下作为后续自己的参考笔记
1.不同角色对接口的理解:
开发眼中的接口:模块与模块之间的对接方式定义
测试眼中的接口:可以独立部署成服务的协议接口
2.常见接口协议
3.TCP/IP五层协议
4.HTTP响应码
1xx:信息响应类(处理中)
2xx:处理成功响应类(200)
3xx:重定向响应类(302)
4xx:请求错误(403 404 408)
5xx:服务器错误 (500 502)
5.HTTP请求响应模型(一次请求的生命周期或简单的软件分层)
客户端--->API--->DB--->API-→客户端
场景:新增用户
1.客户端发起请求到api接口层
1.1填写新增用户必填字段,点击提交,发送请求
2.API接收到客户端发起的用户请求
2.1 api对业务逻辑进行校验
比如:用户名、手机号等必填参数校验
如果验证失败,那么需要给客户端返回响应码
3.API会将用户输入的数据发给DB层
create,select,insert,update(逻辑删),delete(物理删,一般逻辑删)
比如把新用户信息insert到用户表中insert into users()values()
4.DB会将返回的插入、查询数据库的条目给API
5.API将数据库返回的结果或状态码返回给客户端
6.客户端将返回的信息展示给用户--比如新增用户成功等信息
以上软件分层中各个层次适合哪些测试方法?如下:
一、客户端(浏览器、app、H5、client)
功能测试、性能测试、UI自动化测试
二、接口层
接口测试、功能测试、性能测试、接口自动化测试
三、数据库层
可以将发开人员使用到的sql语句单独进行性能测试
6.使用jmeter进行接口测试所遇到的问题
6.1 jmeter乱码问题
6.1.1 Content encoding设置为UTF-8
6.1.2 安装目录下-bin目录下-jmeter.properties文件sampleresult.default.encoding=UTF-8
6.1.3 某个jmeter场景设置后置处理器-beanshell后置处理器,在scripts里“prev.setDataEncoding("UTF-8")”
6.2.参数化
6.2.1 函数助手对话框–CSVRead(文件路径,列号)
6.2.2 添加配置元件CSV Data Set Config
6.2.3 添加前置处理器-用户参数
后续会分享接口测试的一些基础知识,比如什么是接口,接口的分类等等