接口测试基础
一、接口测试
接口测试就是功能测试,比UI测试还简单;
接口就是从数据库查到数据,返回回来;
一般接口返回的是json格式字符串;json是一种通用的数据类型;
前端和后端
客户端、服务端
越底层发现bug修复bug成本是越低的;
Get与POST请求的区别
Get请求:它的请求数据是放在url里面的;
Post请求:它的请求数据是放在body里面的;
Cookie:存放在本地的一个键值对,即key-value
Session:存放在服务端的一个键值对;
二、Jmeter性能测试工具
Jmeter写脚本
1、修改jmeter查看结果树乱码问题:
在jmeter\bin目录下找到jmeter.properties文件,找到sampleresult.default.encoding这个之后在该注释行下添加如下:
sampleresult.default.encoding=utf-8
保持该文件,并重启jmeter,就可以解决jmeter返回解决乱码的问题。
2、 jmeter中发送post信息body data中包含中文信息显示乱码,解决body data中文乱码问题:
在jmeter\bin目录下找到jmeter.properties文件,找到jsyntaxtextarea.font.family=Hack这一行之后去掉#号,重启jmeter即可。
3、 在body data中显示的中文正确,但是运行之后在数据库中查看数据却是乱码,需要在请求出添加为utf-8即可。
Jmeter参数化
1、 用户定义的变量(线程组->添加配置元件->用户定义的变量)
配置元件中的用户定义的变量可以为一个全局变量,可以在其他sample中调用;如果该变量中的值有变化可以在此修改,不用在sample中单个修改;
该配置元件含义类似于配置元件中的http请求默认值,如果http请求默认值添加之后,后面的http请求中如果某些值没有填则直接使用该默认值,如果后面的http请求中如果填了某些值则优先使用后面http请求中的参数值。
2、 函数助手里面的:
__random(在选项->函数助手对话框中,选择__Random函数,可以生成一个随机变量参数,在后面的函数中进行调用,进行压测)
__time yyyyMMddHHmmdd时间的格式(此项是24小时制的)
也可以使用__time函数生成一个随机数在其他请求中进行调用
Jmeter里面取到的时间戳是精确到毫秒的;
时间戳就是从计算机诞生那一天到现在过了多少秒;
3、 文件里面读取
默认不写绝对路径的话,是从jmeter的bin目录下读取文件;(此方法不建议使用,一般在没有办法的情况下才使用)
文件里面可以写多列,多列以逗号隔开,参数名也要写多个以逗号隔开;
Jmeter压测
并发用户数
Tps:服务端每秒处理的请求数,越大越好
响应时间:越快越好
jmeter压测可以通过聚合报告查看响应时间和tps;
如果要进行压测,则需要在线程组上配置对应的线程数、循环次数、调度时间等。