day1

接口测试基础

一、接口测试

接口测试就是功能测试,比ui测试还简单;

接口说白就是从数据库查到数据,返回回来;

一般接口返回的数据都是json格式;json是一种通用的数据类型;

接口分类

webservice接口:是走soap协议通过http传输,请求报文和返回报文都是xml格式的;

http api接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式;

前端和后端

客户端和服务端

越底层发现bug,它修复成本是越低的;

get请求和post请求的区别

get请求:它的请求数据是在放在url里面的;

post请求:它的数据是放在body里面的;

一般get请求用来获取数据,post请求用来发送数据;

如果是get请求的话,直接在浏览器里输入就行了,只要在浏览器里面直接能请求到的,都是get请求,如果是post的请求的话,就不行了,就得借助工具来发送;

cookie:存放在你本地的一个键值对,即key - value;

session:存放在服务端的一个键值对;

Http状态码

200: 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了;

300 :3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了;

400 :400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面;

500 :5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果;

二、性能测试工具

一、解决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这个之后在该注释行下添加如下:

jsyntaxtextarea.font.family=Hack

保存该文件,重启jmeter即可。

 

3、  在body data中显示的中文正确,但是运行之后在数据库中查看数据却是乱码,需要在请求处添加为utf-8即可。

 

http接口脚本

1、添加线程组
2、添加http请求
3、在http请求中写入接口url、路径、请求方式、参数
4、添加查看结果树
5、调用接口、查看返回值

Jmeter参数化

1、  用户定义的变量(线程组->添加配置元件->用户定义的变量)

配置元件中的用户定义的变量可以为一个全局变量,可以在其他sample中调用;如果该变量中的值有变化可以在此修改,不用在sample中单个修改;

该配置元件含义类似于配置元件中的http请求默认值,如果http请求默认值添加之后,后面的http请求中如果某些值没有填则直接使用该默认值,如果后面的http请求中如果填了某些值则优先使用后面http请求中的参数值。

2、  函数助手里面的:

__random(在选项->函数助手对话框中,选择__Random函数,可以生成一个随机变量参数,在后面的函数中进行调用,进行压测)

__time    yyyyMMddHHmmdd时间的格式(此项是24小时制的)

也可以使用__time函数生成一个随机数在其他请求中进行调用

Jmeter里面取到的时间戳是精确到毫秒的;

时间戳就是从计算机诞生那一天到现在过了多少秒;

3、  文件里面读取

默认不写绝对路径的话,是从jmeter的bin目录下读取文件;(此方法不建议使用,一般在没有办法的情况下才使用)

文件里面可以写多列,多列以逗号隔开,参数名也要写多个以逗号隔开;

Jmeter压测

并发用户数

Tps:服务端每秒处理的请求数,越大越好

响应时间:越快越好

jmeter压测可以通过聚合报告查看响应时间和tps;

如果要进行压测,则需要在线程组上配置对应的线程数、循环次数、调度时间等。

post请求他的数据是放在body里面的

原文地址:https://www.cnblogs.com/you-shu/p/9090800.html