一、接口测试的概念
弄清楚接口测试,首先要了解前端(client端)和后端(server端),前端目前主流三个系统,web端和移动端,web端常用语言是html、css、js。移动端分为ios和Android,ios常用语言是swift、object-c,Android常用语言就是Android。而后端(server端)开发语言就比较多了,如java、python、php、.net等等。而接口就是把前后端联系起来的一种数据类型传送方式。测试接口必须要有接口文档,按照接口文档的入参与出参格式对照进行比对。
接口测试现在用的最常见的数据传送类型就是json。格式如下:
{
'name':'王五' ,
'sex':男
}
接口返回的数据都是json。
key-value
键值对
目前还有xml这种数据类型。格式如下:
<name>wangwu</name>ianjia
<sex>nan</sex>
接口测试其实就是功能测试,包含各种花样操作数据库。如果是get请求,不需要借助任何工具,浏览器可以直接发送请求。参数需要在路径后面加?添加,多个参数传参参数和参数之间用&隔开如:
http://ip/api/user/stu_info?stu_name=小四&sex=女&xxx=xx
二、cookie和session的概念
cookie就是存放在本地的一个键值对。如:
niuhanyang:hahaha12345,实际上key-value中的value值可能会做一些特殊处理。
session就是存放在服务器的一个键值对。如:
niuhanyang:hahaha12345,实际上key-value中的value值可能会做一些特殊处理。
当本地清除缓存后,本地存放的键值对消失,这个时候服务器校验需要重新登录。目前主流大型网站都实行的是DNS解析,就是将域名解析成IP。
三。http请求及get请求和post请求区别
http请求分为两个部分,请求头和请求体,请求头里面呢是一些额外的信息,比如说用的什么浏览器,cookie,需要什么类型数据,header,请求体里面传的是具体的数据。
get请求和post请求的区别:
1、get请求只有请求头,是没有请求体的。它的数据直接放在url里面的,post请求数据是放在body里面的。
2、get请求有长度限制,post请求没有,在以前的时候技术不好,有长度限制,现在已经就没有了。
3、get请求和post请求一样,只要通过抓包,post请求数据一样可以看到。
http状态码:
200 请求成功
302 重定向
404 客户端发出去的请求不合法
500 服务端内部程序问题 501 服务器还不具有请求功能 502 错误的网关 503 服务器在维护或暂停 504 网关超时
工具篇:
一、postman变量设置
添加变量,点击globals,输入变量名和变量值,引用时是用{{}}符号引用。
二、jmeter
jmeter是一款开源的java开发的一个压力测试工具。
jmeter查看结果树乱码解决方法:
1、在jmeter的bin目录下找到jmeter.properties这个文件添加上sampleresult.default.encoding=utf-8。
2、重启jmeter。
jmeter body data里面有乱码解决方法:
1、在jmeter的bin目录下找到jmeter.properties这个文件添加上jsyntaxtextarea.font.family=Hack。
2、重启jmeter。
jmeter参数化三种方式:
1、在用户自定义变量。
2、函数助手框中的函数生成器。
__random 代表随机数,代表在某个范围值取随机
__counter 计数器函数,从1开始计数。
__time 时间函数,有2种,一种是格式化好的时间 yyyyMMddHHmmss,一种是时间戳,从计算机发明那一天到现在过了多少秒。
jmeter是java开发的,Java里面的时间戳默认是精确到毫秒。
所以你要除以1000才是真正的时间戳。
3、从文件中读取
jmeter断言:
jmeter关联:
1、调用第一个接口,然后从这个接口的返回数据里面拿到某个值
2、放到第二个接口里面来用。