1、为何要单独测试接口?前端
1. 程序是分开开发的,前端尚未开发,后端已经开发完了,能够提早进入测试
2. 接口直接返回的数据------越底层发现bug,修复成本是越低的
3. 接口测试能模拟功能测试不能测到的异常状况,例如修改订单金额java
2、get请求和post请求mysql
二者的区别:正则表达式
get请求向服务端获取数据的 ,post请求向服务端发送数据sql
get传参写在url或cookie中 ,post将数据放在body中数据库
get请求没有请求体,只有请求头,post有请求头和请求体json
get有长度限制(x)如今没有限制了后端
post请求更安全(x)抓包都能抓到,都不安全浏览器
3、http状态码
2xx 请求成功 常见的200
3xx 重定向
4xx 客户端发送的请求语法错误
5xx 服务端问题安全
4、cookie和session
cookie 存在用户本地的一个键值对 key-value
seesion 存在服务端的一个键值对
cookie和seesion 同一个值比对,比对相等容许操做
1.get类型
能够直接在浏览器中进行测试,?后写参数,&拼参数
2.post类型
请求选择post,添加参数便可
3.入参是jason类型
选择Body-raw-JSON(application/json),直接将jason串复制进来
4.请求头加cookie
在Headers中添加cookie的key和value
5.请求头加refer
6.上传文件
body-form-data-File-选择文件便可
sep1测试计划-添加-Threads-线程组
sep2 线程组-添加-Sample-http请求
sep3 添加域名、端口号、协议、请求方法、路径、编码格式、参数
参数为文件 Files Upload --添加--文件名称:文件的绝对路径,或直接把文件放在jmeter的bin路径下,直接添加文件名,参数名称:参数名
sep4添加断言(至关于LR中的检查点) 请求-添加-断言-响应断言---断言内容请求response中的值
sep5 添加监听查看请求结果 线程组、请求-添加-监听器-察看结果树
sep6 根据须要添加配置原件(例如cookie或http信息头)
参数化-----服务器或程序校验输入值的惟一性须要参数化,例如新加用户,手机后不能重复添加
方法一:添加-配置元件-CSV Data Set Config
参数化文件首行不用写参数名,引用参数时 -----${参数名}
方法二:使用函数助手
选项---函数助手 经常使用的time取到秒级能够用作惟一性的参数的取值,random生成一个取值范围,任意取其中的一个值
方法三:配置原件-----用户定义的变量,一 一写出来
关联----服务器返回动态码,为了经过服务器的验证,使用关联,例如,添加金币,须要服务器返回动态的记录用户登陆状态的sign串
方法一:正则表达式
添加-后置处理器-正则表达式提取器
正则表达式,须要看从哪一个请求返回,就去那个请求的返回集中找,找到后复制该动态值以及左右边界,动态值替换为正则表达式便可
方法二 jason path(须要安装插件)$.login_info.sign 表明返回jason串中,取真个jason下面的login_info节点下面的sign的值
sep1测试计划加载java链接mysql的jar包
sep2 添加JDBC Connection Configuration 线程组-添加-配置元件-JDBC Connection Configuration
Variable Name 能够任意添写
database url:jdbc:mysql://ip:端口号/库名?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true 注:characterEncoding=UTF-8保证新增修改数据库中文不乱码,allowMultiQueries=true 容许同一个请求同时写增删改查操做
JDBC driver Class:com.mysql.jdbc.Driver 固定写法
username:数据路用户名 Password 数据库密码
sep3 添加 jdbc request 线程组-添加-Sample-JDBC Request
Variable Name 必定要和JDBC Connection Configuration中Variable Name已知,不然报错
Query Type 选Callables Statement 能够同时写增删改查
在jmeter.properties 这个文件里面
找到sampleresult.default.encoding=xx
后面xx改为utf-8,而后取消注释
解决jmeterbody里面中文显示不出来
找到 JSyntaxTextArea
而后把注释取消就好了,以js开头的
解决请求参数中午乱码 请求页面
content encoding 填写utf-8
解决数据库操做中文乱码
database url后添加characterEncoding=UTF-8