【没有所谓的运气🍬,只有绝对的努力✊】
目录
1、接口测试分类
1.1 内部接口:
1.2 外部接口:
2、目前接口架构设计
2.1、基于SOAP架构,
2.2、基于RPC架构,
2.3、基于RestFul架构,
2.3.1 请求行、请求头、请求体
2.3.2 响应行、响应头、响应体
3、市面上的接口测试工具
4、Jmeter简介、安装、环境变量的配置
5、Jmeter目录介绍
6、Jmeter常用组件
6.1 jmeter常用组件
6.2 顺序:!!!
6.3 作用域:!!!
7、Jmeter执行接口测试
step1:
step2:编写接口测试用例。
step3:使用接口测试工具执行
step4:
8、Jmeter接口测试——案例1
9、Jmeter接口关联
9.1 使用正则表达式实现接口关联
9.2 使用json提取器表达式实现接口关联
10、Jmeter实现业务闭环
11、Jmeter动态参数处理
12、Jmeter断言(见day11 性能测试(3))
13、Jmeter接口测试调试方案
14、CSV参数化处理
15、必须带请求头的接口
16、没有接口文档录制功能操作
17、BeanShell组件
17.1 Jmeter里面有哪些 BeanShell呢?
17.2 内置变量和语法规则
17.2.1 log打印日志
17.2.2 vars表示:JmeterVariables,操作Jmeter变量
18、Jmeter执行数据库操作(Jmeter直连数据库)
18.1 案例:使用jemter从数据库中获取用户名和密码,放入登录接口里面。!!!!!
19、Jmeter非GUI(界面)方式运行
面1:Git和SVN的区别:
面2:详细分析 请求头、请求行、请求体 里面各个字段的含义和内容。
面3:查看结果树里面,取样器结果的各个参数字段含义。
1、接口测试分类
1.1 内部接口:
测试对被测系统各个子模块之间的接口;或被测试系统提供给内部系统使用的接口。(只需测正例)
1.2 外部接口:
1、被测系统调用外部的接口。(只需测正例)
2、系统对外提供的接口。
接口测试重点:
检查接口参数传递的正确性;
接口功能的正确性;
输出结果的正确性;
以及对各种异常情况的容错处理;
以及权限控制;
分页处理;
调用次数的限制;
2、目前接口架构设计
2.1、基于SOAP架构,
基于XML规范。基WebService协议。特点:接口地址以 ?wsdl结尾
2.2、基于RPC架构,
基于dubbo协议,thrift协议,SpringCloud微服务。
2.3、基于RestFul架构,
基于json规范,基于http协议。
RestFul规则:
- 接口地址:http:/127.0.0.1/user,get(查询用户),post(新增用户)put(修改用户),delete(删除用户)
- json数据格式:只有两种数据类型。键值对{key:value}、数组[arr1,arr2]
2.3.1 请求行、请求头、请求体
cookie :客户端→服务器的。
2.3.2 响应行、响应头、响应体
set-cookie:服务器→客户端的 只在第一次请求。
3、市面上的接口测试工具
主流的两种工具:
(1)方式1:Jmeter+Ant+Git+Jenkins
(2)方式2:Postman+Newman+Git+Jenkins
其他工具:soapui 、apipost、fiddler、charies
4、Jmeter简介、安装、环境变量的配置
基于java语言的压力测试工具,可以做接口测试、也可以做性能测试。
安装:jdk1.8以上、配置环境变量。
Jmeter——接口测试、性能测试;
5、Jmeter目录介绍
backups:脚本的备份目录,格式jmx
bin目录:存放jmeter的启动脚本、配置文件、模版文件。
jmeter.bat 启动jmeter
jmeter.properies :核心的配置文件
docs目录:离线的帮助文档。
extras目录:存放第三方的集成构成文件,集成Ant。Jenkins。
lib目录:存放jar包。
licenses目录:许可证文件。
6、Jmeter常用组件
6.1 jmeter常用组件
(1)测试计划。 起点。所有组件的容器。
(2)线程组。 代表一定数量的用户
(3)取样器。 向服务器发送请求的最小单元
(4)逻辑控制器。 结合取样器实现一些复杂的逻辑。
(5) 前置处理器。 在请求之前的工作。
(6)后置处理器。 在请求之后的工作。
(7) 断言。 用于判断请求是否成功。
(8)定时器。 负责在请求之间的延迟间隔,固定,高斯,随机。
(9)配置元件。 配置信息
(10)监听器。 负责收集结果。
6.2 顺序:!!!
测试计划→线程组→配置元件→前置处理器→定时器→取样器→后置处理器→断言→监听器
6.3 作用域:!!!
必须组件:测试计划、线程组、取样器。
辅助组件:除了必须组件外。
辅助组件作用于父组件,同级组件,以及同级组件下的所有子组件。
7、Jmeter执行接口测试
step1:
拿到api接口文档(Fiddler抓包)、熟悉接口业务、接口地址、鉴权方式、入参、出参、错误码。
step2:编写接口测试用例。
测试思路:
正例:输入正常的入参、查看接口成功返回。
反例:
鉴权:空、错误、鉴权过期、鉴权次数限制.......
参数:空、类型错误、长度错误、错误码的覆盖。
其他:黑名单、分页、
step3:使用接口测试工具执行
step4:
Jmeter + Ant + Git + Jenkins 实现持续集成输出接口测试报告,通过电子邮件发送。
8、Jmeter接口测试——案例1
目前市面上的鉴权码获取方式:
(1)通过接口获取,appid、secret
(2)登陆之后自动生成。username、password
案例:
1、登录接口,获取token
2、创建用户接口,传入token和其他参数
9、Jmeter接口关联
9.1 使用正则表达式实现接口关联
9.2 使用json提取器表达式实现接口关联
10、Jmeter实现业务闭环
增、改、删、查。
11、Jmeter动态参数处理
随机数字:${__Random(10000,99999,)}
随机字符串:${__RandomString(6,abcdefg1234567,)}
上述随机的数值,可以通过函数助手得到。
12、Jmeter断言(见day11 性能测试(3))
更加详细:day11 性能测试(3)——Jmeter 断言+关联-CSDN博客
13、Jmeter接口测试调试方案
1、通过【查看结果树】里面的请求信息和响应信息。
2、使用【调试取样器】。
3、Jmeter 结合Fiddler实现调试。(在没有接口文档,只能通过抓包去获取。)
14、CSV参数化处理
login.csv文件准备
读取csv文件
15、必须带请求头的接口
添加HTTP信息头管理器:
16、没有接口文档录制功能操作
1、如果没有接口文档的情况下,可以使用Jmeter的脚本录制的功能。
2、使用Jmeter自带的http代理服务器实现。(把Jmeter作为代理)
(1)设置端口、设置存放的位置。
(2)设置本机的代理请求。
17、BeanShell组件
BeanShell 是一种完全符合java语法规则的脚本语言。
java包括:javase、javaee、javame。
17.1 Jmeter里面有哪些 BeanShell呢?
(1) 前置处理器:Beanshell 预处理程序。
(2)定时器:BeanShell
(3)采样器BeanShell
(4)后置处理器:BeanShell
(5)断言:BeanShell
(6)监听器:BeanShell
17.2 内置变量和语法规则
17.2.1 log打印日志
17.2.2 vars表示:JmeterVariables,操作Jmeter变量
(1)用户定义的变量
(2)正则表达式提取的变量、JSON提取器提取的变量
【BeanShell里面 获取变量】
【BeanShell里面 设置变量】必须在一个线程组里面使用。
18、Jmeter执行数据库操作(Jmeter直连数据库)
1、准备数据库驱动包:Jmeter直连数据库,jar包下载-CSDN博客
2、放到jmeter里面的 lib/ ext 目录里面
3、新建 JDBC connection (详细见:day11 性能测试(4)——Jmeter使用(黑马的完结,课程不全)直连数据库+逻辑控制器+定时器-CSDN博客)
4、新建 JDBC request
18.1 案例:使用jemter从数据库中获取用户名和密码,放入登录接口里面。!!!!!
19、Jmeter非GUI(界面)方式运行
面试题,下面的面试题,是在视频课里面,老师提到的,说有的面试可能会被问到这些细节。有时间我再整理。
面1:Git和SVN的区别:
主要有以下几个方面:
(1)版本控制方式:
①git是分布式版本控制系统。每个开发者的计算机上都有一个项目的完整副本,包含所有分支和版本历史。开发者可以在本地进行多数操作,如提交、创建分支和合并分支等,不依赖网络连接。
②svn是集中式版本控制系统。所有的历史版本都保存在中央服务器上,开发者需要依赖中央服务器来获取历史版本信息。
(2)数据存储方式:
git存储每个文件的内容和变更记录,优化存储且克隆时通过比较快。它使用SHA-1哈希算法确保代码完整性。
svn按照原始文件存储,体积较大,且所有资源控制在.svn中。
(3)适用场景
git更适合需要高灵活性和快速迭代的项目,尤其是处理大型仓库或大量历史记录时更为高效。
svn适用于小型项目或团队。
面2:详细分析 请求头、请求行、请求体 里面各个字段的含义和内容。
面3:查看结果树里面,取样器结果的各个参数字段含义。