目录
一、什么是接口测试
通常做的接口测试指的是系统对外的接口,比如你需要从别的系统来获取到或者同步资源与信息,他们会提供给你一个写好的接口方法供你调用,比如常用的app,用户同步这些在处理数据的时候需要通过接口进行调用。
webService接口和http api接口是最常见的两种接口方式,后者最常用,采用http协议,有get 和post请求方法,返回的数据是json类型,接口测试也可以说是功能测试,通过调用接口从数据库中获取到数据,返回回来。
二、前端和后端
前端和后端如果说成客户端与服务端比较好理解,在浏览器上打开一个网页,打开一个管理系统,在一个APP上操作,这些都属于前端,他的作用就是显示页面,操作页面,而处理这些业务逻辑功能比如说页面上的非空校验,业务逻辑功能能都是通过后端来实现的,而前端和后端的交互正是通过接口来交互的。
三、get请求和post请求的区别
get请求接口的请求数据是放在url里面的,post请求接口的请求数据是放在body里面的,get请求可以在浏览器中直接访问,而post请求只能借助工具完成
四、cookie和session
cookie是存放在本地的一个健值对 对应的是key-value,session是存放在服务端的一个健值对k-v
五、接口测试的依据
接口规范文档,接口文档至少包括
1、接口说明
2、调用url
3、请求方法(get\post)
4、请求参数、参数类型、请求参数说明
5、返回参数说明
六、HTTP状态码
每个发出去的http请求,都会返回一个状态码,用来标识这个请求是否成功,常见的状态码有以下几种:
1)200 2开头的表示请求成功
2)300 3开头的代表重点向
3)400 4开头的代表客户端发送的请求有语法错误
4)500 5开头的代表服务器有异常
七、通用接口用例

八、postman接口测试
1)get请求
请求参数可以在url后面直接传参,多个参数用&符号,url?x=x&xx=xx
header 用来传输一些额外的信息
例如:获取学生信息接口,postman测试操作截图

获取所有学生信息接口添加header信息,postman测试操作截图

2)post请求
例如登陆接口,包含内容:post请求方式,请求url,参数在body处填写,点击send返回数据

添加学生信息接口(入参是json类型),包含内容,请求url,post请求,参数在body内选择raw填写json串

学生金币信息充值接口,包含权限认证需要添加管理员权限cookie,操作内容包含请求url,选择Headers添加cookie,body添加参数


获取所有学生信息接口,添加header信息,操作包含内容,请求url,header添加Referer

文件上传接口

九、Jmeter接口测试
- jmeter查看结果树乱码?
到jmeter的安装目录bin目录下找到jmeter.properties,添加sampleresult.default.encoding=utf-8
重启jmeter
2)jmeter body data里面有乱码怎么解决?
到jmeter的安装目录bin目录下找到jmeter.properties,添加jsyntaxtextarea.font.family=Hack
重启jmeter
3)jmeter参数化
- 用户定义的变量
线程组-》添加-》配置元件-》用户定义的变量,添加名称,值,引用变量填写${变量名}
- 函数助数
选项-》函数助手对话框,选择函数功能,例如__random、__time ,选择后点击【生成】,把生成的函数字符串拷贝到请求数据中 ,__time生成的是时间戳,时间戳就是从计算机诞生那一天到现在过了多少秒,如果要转换其他日期格式,在函数助手框中取值处填写再生成
- 文件读取
线程组-》添加-》配置元件-》CSV Data Set config

4)jmeter压测指标
线程组-添加-聚合报告可以看到并发用户数、响应时间(越快越好)、tps(服务端每秒钟处理的请求数 越大越好)。
5)用JSON Path PostProcessor关联获取返回信息
- 安装JSON Path PostProcessor插件
- 请求-》添加-》后置处理器-》SON Path PostProcessor
- 根据返回json参数中的对应数据进行提取,例如sign对应的k值是login_info即$.login_info.sign

6)操作数据库步骤
1、安装mysql-connector-java-5.1.7-bin.jar,放到jmeter安装目录的lib目录下
2、测试计划-浏览,添加mysql-connector-java-5.1.7-bin.jar
3、线程组-添加-配置元件-JDBC Connection Configuration,填写数据库连接

4.线程组-添加-sampler-JDBC Request
选择操作类型,查询选择select statement 只限单条查询,如果多条查询可选择Callable Statement(不限格式)但除了最后一条sql,其他sql需要用;来结束, insert语句选择Callable Statement


