接口测试笔记

一、接口测试概念

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

接口:就是从数据库里面取数据库、插入数据。前端、后端通过接口交互数据。

接口测试本质上就是功能测试,它比功能测试更简单。功能测试是在页面上进行操作、输入、提交、查看数据结果,而接口测试没有页面,是通过接口规范文档上的调用地址、请求参数,拼接报文,然后发送请求,检查返回结果。

二、接口文档

1、接口说明
2、调用url
3、请求方式(get、post、put、delete等)
4、请求参数,数据类型,请求参数说明
5、返回参数说明

三、接口请求报文拼接

1、url?param=value&param2=value
问号前面是请求url,后面是请求的参数名、参数值,多个参数用&连接
 
2、还有一种入参是json串的,需要借助工具来完成(postman、jemete等)
json是一种通用的数据类型,所有的语言都认识json ,接口返回的数据类型都是json
json格式是 key -》 value

四、get、post请求的区别

1、get请求只有请求头,没有请求体,它的参数是写在url里面的
2、get请求一般用来向服务器获取数据,post请求一般用来向服务器发送数据
3、get请求有参数长度限制,post请求没有
4、get请求没有post请求安全
PS:以上除了第1条,其它的基本没有区别
 
五、session和cookie
session          
  存在服务端的一个键值对
cookie          
  存在客户端的一个键值对
 
六、接口测试用例
     1、正常的用例(保证功能正常)
     2、其它的业务逻辑
     3、异常的点(与文档相悖的)
 

七、接口测试工具

1、postman

 1)get请求

get请求不需要借助工具,在浏览器里面就可以发起请求

格式:url?parma=abc&name=def    多个请求参数用

header信息需要放在headers里面

 2)post请求

请求类型为post,输入url,选择参数类型为Body--form-data

  •  入参是json类型

  •  添加cookie信息

cookie信息添加在Headers里面,其它参数在Body里

  •  文件上传

文件上传,key类型选择file类型

 2、jmeter

1)打开jmeter

双击 jmeter bin目录下 jmeter.bat 文件,打开jmeter

2)解决jmeter返回有乱码

  jmeter  bin目录下 jmeter.properties 文件最的一行加上 sampleresult.default.encoding=UTF-8,重启生效

3)bodydata里面汉字显示不出来

  jmeter bin目录下 jmeter.properties 文件最的一行加上  jsyntaxtextarea.font.family=Hack,重启生效

4)jmeter参数化

①函数助手
选项-->函数助手对话框-->选择函数
--Random取随机数
--time 取时间戳,计算机从诞生到现在过了多少秒
②http请求默认值
 

③用户定义的变量

④使用文件参数化

添加-->配置元件-->CSV Data Set config

filename:文件绝对路径

Variable Names:参数名称,多个参数用 , (逗号)隔开,使用参数时用${参数名}

Delimiter:分隔符,默认逗号。

Allow quoted data:是非选项,是否允许变量中间有分隔符,这里最好先默认false,数据中间最好不要有分隔符。

Recycle on EOF和Stop thread on EOF:是否循环,到结尾是否停止测试。

Sharing mode:选择哪些线程可以利用此参数化。

 ⑤关联

添加-->后置处理器-->JSON Path PostProcessor

Variable names:变量名

Json Path expressions :返回值中的值。$表示根{},login_info是下一级{},sign是要取的值

关联好后,使用${sign}就可以使用返回值,使用关联值的脚本放在后面,jmeter顺序执行

5)jmeter组件添加
  • 添加线程组
 
  • 添加http请求
 
  • 添加查看结果树

6)jmeter接口实例

  • get请求

 

  •  带header的get请求

  • post请求

 

  • 入参是json的post请求

 

  • 添加cookie的post请求

 

  • 文件上传

 

  7)jmeter连接数据库

  1、导入jar包  

在“测试计划”中加入mysql的jar包,其它数据库加入对应的jar包。 

 2、添加数据库连接

线程组--》添加--》配置元件--》JDBC Connection Configuration

数据库连接配置:

名称:数据库连接的名字
Variable Name:与JDBC Request中的Variable Name 保持一致就可以
DataBase URL:jdbc:mysql://ip:port(端口)/库名?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
JDBC Driver class:com.mysql.jdbc.Driver
Username:数据库用户名
Password:数据库密码
  3、添加JDBC请求

线程组--》添加--》Sampler--》JDBC Request

 

Variable Name:与JDBC Connection Configuration中的Variable Name 保持一致就可以

 Query Type:

1、Select statement

这是一个查询语句类型;如果JDBC Request中的Query内容为一条查询语句,则选择这种类型。

2、Update statement

这是一个更新语句类型(包含insert和update);如果JDBC Request中的Query内容为一条更新语句,则选择这种类型。

3、Callable statement

Query内容为多条查询语句、更新语句或者都有,则选择这种类型。

  8)jmeter分布式

jmeter当前压力机的性能不能满足测试需求,就需要借助其它压力机共同完成压力发生操作。

添加压力机:两台电脑要能互相ping通

1、配置文件里面bin目录下jmeter.properties文件
  找到remote_hosts,添加ip:端口
  remote_hosts=localhost:1099,10.165.124.57:1099
  重启jmeter
 2、另外一个人的电脑上要有jmeter,并且运行jmeter-server
   windows电脑是 jmeter-server.bat
   linux/mac是 jmeter-server
 3、如果有参数化文件,那你也要在其他的电脑上放一份
   把参数化文件放在jmeter bin目录下,就可以直接用文件名,不用写绝对路径了             
非图形化界面运行命令:
jmeter -n -t C:UsersAdministratorDesktopaidu.jmx -l yanyan123.jtl
-n:非图形化界面
-t:jmeter脚本
-l:结果文件
    4、结果查看
    打开jmeter的聚合报告或者查看结果树
     选择浏览--》打开上面生成的jtl文件即可查看结果
 
原文地址:https://www.cnblogs.com/yanyan-/p/10552847.html