目录

1 测试管理... 3

1.1 项目管理... 3

1.2 用户管理... 3

1.3 脚本/用例管理... 3

1)      模块管理... 3

2)      脚本管理... 4

3)      参数管理/数据驱动... 4

1.4 接口管理(脚本里再分模块)... 4

1.5 测试/监控管理... 4

2 创建接口... 5

2.1 手动创建... 5

1)      点击创建HTTP脚本... 5

2)      添加删除接口节点... 5

3)      编辑接口... 6

4)      HTTP方法... 7

5)      POST内容格式... 7

2.2 浏览器录制创建接口... 9

1)      创建录制脚本... 9

2)      选择浏览器与输入URL地址... 9

3)      过滤HTTP请求... 9

2.3 SwaggerURLJSON文件导入创建接口... 10

2.4 通过har文件录制创建接口... 11

1)      保存har文件... 11

2)      创建录制脚本... 11

3)      选择har文件... 12

2.5 抓包文件录制创建接口... 12

1)      创建录制脚本... 12

2)      抓包文件必须为pcap格式... 12

3)      输入过滤规则... 13

4)      过滤HTTP请求... 13

5)      多个抓包文件合并... 14

3 编辑接口高级功能... 14

3.1 参数化/数据驱动... 14

3.2 关联参数... 15

3.3 检查点... 15

1)      检查文本... 16

2)      检查JSON内容... 16

3)      检查内容长度... 17

3.4 调用JAR... 17

3.5 时间阈值告警... 17

3.6 轮循检查异步接口... 18

3.7 多线程并行执行脚本(压力测试无效)... 19

3.8 一个例子介绍接口管理... 20

1)      事务同步(用于初始准备或结束清理)... 20

2)      描述节点... 20

3)      层级接口... 21

4)      串行接口(父子层级、用于存在关联依赖的多个接口)... 21

5)      接口脚本... 22

4 接口调试... 22

4.1 整个脚本调试... 22

4.2 单个接口调试... 23

4.3 父子接口(关联依赖)调试... 24

1)      调试整个模块... 24

2)      调试父子关系... 24

4.4 与录制对比... 24

4.5 关联参数... 25

5 自动化测试... 25

5.1 创建功能自动化测试... 25

1)      脚本里接口串... 26

2)      脚本里接口并行... 26

5.2 测试计划报告查看... 27

5.3 测试脚本报告查看... 27

5.4 接口脚本历史报告... 29

5.5 单个接口历史报告... 30

5.6 邮件通知... 31

6 性能/压力测试... 32

6.1 创建性能测试... 32

1)      整个脚本... 33

2)      单个或多个接口... 33

6.2 性能测试报告分析... 33

6.3 并发模型... 34

6.4 服务器监控(CPU、内存等资源)... 35

7 接口监控... 36

7.1 创建接口监控... 36

7.2 接口报告查看... 37

7.3 告警通知... 38

 

 

奇林监测平台接口测试的视频介绍请点击:视频链接

1 测试管理

1.1 项目管理

不同项目组可以使用不同项目,或者同一项目组测试多个项目(多个版本),可通过项目管理实现。

管理员权限:支持添加、修改、删除项目;为项目分配用户;

普通用户:只能查看分配的项目,切换项目;

1.2 用户管理

只有管理员权限才能添加、修改、删除用户

1.3 脚本/用例管理

1)   模块管理

支持两级模块管理,每个脚本归属一个模块,直观管理测试用例/脚本

2)   脚本管理

脚本包括有WEB UI脚本、HTTP协议脚本、接口脚本、其他协议(如TCPSIPFTP)脚本

3)   参数管理/数据驱动

上传CSV文件到平台,然后在测试计划(自动化测试、性能/压力测试、接口/业务监控)里引用,确保自动化每次执行、甚至性能测试每个虚拟用户使用不同的参数值。

1.4 接口管理(脚本里再分模块)

左边的树形节点支持拖拽,支持多级。

一个脚本可以实现N个接口的管理,但不能同时多人编辑;不同脚本支持同时多人编辑。

1.5 测试/监控管理

2 创建接口

通过录制创建接口可以提升编写效率和准确性,另外,保存了录制时的交互日志,可以在调试时进行比较和关联参数,让接口测试更简单。建议在测试环境具备情况下通过录制创建接口。

2.1 手动创建

1)   点击创建HTTP脚本

2)   添加删除接口节点

注意:

上图的描述名称只用来显示管理接口,在测试时,该节点将被忽略

 

左下角的“增加”按钮支持增加多种类型的节点

3)   编辑接口

POST发送JSON内容为例

内容类型选择JSON内容(目前支持),选择不同的格式内容,则下面的Header表格的Content-Type头域将变为对应的值。

按消息请求编辑对应的位置,有些请求可能需要修改HTTP的头域表格。

4)   HTTP方法

目前支持常用的方法如上图

5)   POST内容格式

1、  表单参数

2、  JSON内容

支持格式化查看JSON

2.2 浏览器录制创建接口

通过浏览器操作录制接口,更快捷与精确;防止由于对接口与HTTP不够了解导致调试接口花费大量时间。

1)   创建录制脚本

2)   选择浏览器与输入URL地址

3)   过滤HTTP请求

现在的BS系统基本是动静分离,静态文件的URL路径与动态请求的URL路径不一样。如果只需要过滤后台的动态接口。

点击上图的“高级设置”按钮,设置过滤规则

不录制静态资源;另外过滤URL路径包含设置的请求(多个规则使用分号“;”分隔)

2.3 SwaggerURLJSON文件导入创建接口

在脚本用例管理点击新建HTTP脚本

然后点击导入按钮

在弹出窗口选择json文件或者url,点击创建接口

2.4 通过har文件录制创建接口

1)   保存har文件

首先,在录制接口前打开浏览器的F12(开发者工具),然后操作页面得到HTTP接口交互内容

如上图,然后右键保存为har文件。

2)   创建录制脚本

3)   选择har文件

选择保存的har文件。

如果需要过滤,可以配置下面的过滤规则

2.5 抓包文件录制创建接口

现在微服务、分布式是主流框架,后台可能涉及多个服务接口的联合调用;而且接口是后台服务间调用(不是浏览器直接调用)。

 

可以通过抓包录制接口(Linux使用tcpdumpwindows使用wireshark),更快捷与精确;防止由于对接口与HTTP不够了解导致调试接口花费大量时间。

1)   创建录制脚本

2)   抓包文件必须为pcap格式

支持tcpdump抓包或者wireshark抓包,抓包文件格式必须保存为pcap格式。Wireshark工具支持保存或另存为pcap格式

 

3)   输入过滤规则

输入端口(服务监听的端口)可以更精确过滤;

如果输入域名(或者IP地址)也可以将其他TCP报文或无关HTTP请求过滤;

4)   过滤HTTP请求

现在的BS系统基本是动静分离,静态文件的URL路径与动态请求的URL路径不一样。如果只需要过滤后台的动态接口。

点击上图的“高级设置”按钮,设置过滤规则

不录制静态资源;另外过滤URL路径包含设置的请求(多个规则使用分号“;”分隔)

5)   多个抓包文件合并

微服务或分布式架构的服务接口一般在多台服务器上,因此抓包可能需要在多台服务器(服务接口所在机器)上分别抓包;

可以一个抓包文件一个抓包文件的解析生成脚本,然后复制脚本里的所有接口请求,在另一个脚本黏贴合并。

3 编辑接口高级功能

3.1 参数化/数据驱动

平台提供参数化(也称数据驱动)功能,即每次自动化次数或性能测试的虚拟用户发送的数据都不一样。当发送数据内容里面存在“{key}”符号时,平台自动将key值替换为对应的实际参数值,例如:

上图usernamepasswordvalidateCode都有大括号,表示需要在正常运行时替换成真实的值。

 

平台支持在脚本的“参数列表”里添加参数,也支持通过上传CSV文件实现参数化;

详细参数介绍请点击:参数使用说明

http://www.70testing.com/cloud/help/parameter.html

3.2 关联参数

在实际业务中,可能多个接口是有关联依赖的,例如A调用BB返回某个值bA再将该值带上调用C

因此,需要从B返回的接口内容里提取b值,平台称为关联参数

关联参数支持有JSON提取、XML提取、Xpath提取,还有左右文本提取;

详细关联参数的介绍请点击:关联参数使用说明

http://www.70testing.com/cloud/help/getPara.html

3.3 检查点

检查点可以在返回的响应消息里查找是否存在特定“内容”,如果存在,则表示请求成功,否则失败。

 

1)   检查文本

例如检查文本设置为“test”,如果http响应内容包括test,则请求成功,否则失败。

2)   检查JSON内容

当响应内容的格式为json,需要检查某个属性的值是否存在或者为某个值。可以如下设置(必须以“json:”开头)

格式说明:

{"parent":{"child":"abc"}}    如果需要提取abc的值,检查文本需要设置为json:/parent/child

 

{"parent":[{"child":"abc","test":1},{"child":"efg","test":2}]}    如果需要提取abc的值,检查文本需要设置为json:/parent[0]/child;如果需要提取内容值efg,则检查文本可以配置: json:/parent[1]/child

 

{"parent":{"child":["abc","efg"]}}    需要提取child节点的内容值abc,则检查文本可以配置:json:/parent/child[0]; 如果需要提取内容值efg,则检查文本可以配置: json:/parent/child[1]

 

1. 检查属性是否存在

检查文本的格式“json:/parent/child”,只有json path,没有特定的值

2. 检查属性是否为abc

检查文本的格式“json:/parent/child:abc”,需要在json path后增加“:abc”,即匹配值是否为abc

3. 检查属性是否包含abc

检查文本的格式“json:/parent/child:%abc”,需要在json path后增加“:%abc”,即匹配值是否包含abc

 

3)   检查内容长度

检查内容长度是否在设定的范围内,是则表示请求成功,否则失败。

只检查长度的好处,不需要解析和保存http内容,当性能测试时,可以减少CPU资源,提升性能。

3.4 调用JAR

有些接口需要特定参数替换(加密、特定算法),平台无法支持,可以用户自己实现java代码,然后打成jar包,并放在执行器安装目录的agentext目录

        

 

详细介绍请点击:调用jar使用说明

http://www.70testing.com/cloud/help/java.html

3.5 时间阈值告警

接口正常处理时间为1秒,如果超过2秒将影响体验,需要告警。

如下图设置,当处理时间超过2秒,将在报告里显示告警;如果设置了邮件通知,时间告警将触发邮件通知。

3.6 轮循检查异步接口

某些业务场景,调用服务接口后,服务会立即返回成功(例如200 OK),然后再异步处理。

调用方再轮循检测服务接口是否处理完成。

        

         设置检查点,检查收到json内容的resulttrue表示完成;

        

         超时时间为100秒,即100秒还没收到resulttrue则认为失败,否则100内收到则成功。

 

3.7 多线程并行执行脚本(压力测试无效)

当一个脚本里存在10000万接口时,每次自动化测试(版本迭代测试)假设需要花费6个小时,为了大幅缩短测试时间,可以设置并行多个线程(最大限制1000线程)执行1万个接口,每个线程可能执行10个接口,从而缩短测试时间,提升效率。

0表示自动根据接口个数并发线程;

100则表示启动100个线程

 

如果HTTP接口有层级关系(父子关系),将在同一线程串行执行(按顺序执行);有层级关系的多个接口一般是给有关联依赖的接口使用。

例如A调用BB返回某个值bA再将该值带上调用C

 

注意:

接口并发线程只有在功能自动化测试生效,在压力/性能测试将失效,压力测试将自动改为每个虚拟用户串行执行接口。

 

3.8 一个例子介绍接口管理

1)   事务同步(用于初始准备或结束清理)

上图的1,初始化操作或结束清理状态。

 

在并发多个线程测试接口时,如果每个接口需要保证登陆成功才能继续测试,或者每次测试前需要在数据库准备测试数据(插入测试数据)才能测试后面的接口。

可以将初始化的登陆或数据库操作放到事务里,即保证登陆成功后续接口才继续测试。

2)   描述节点

描述名称:用于模块描述,直观界面更清晰,测试时将被忽略。

3)   层级接口

上图的2,接口管理。

多个接口在一级(或在描述节点内),功能自动化测试时,将根据线程数分配到不同线程执行。

4)   串行接口(父子层级、用于存在关联依赖的多个接口)

上图的34,关联依赖接口管理,即多个接口有层级关系,父节点与多个孩子节点。

例如A调用B(获取权限),B返回某个值b(权限值),A再将该值带上调用C

在接口多线程并发时,将被分配到同一个线程,实现串行测试,即有顺序测试多个接口。

注意:

父子层级关系的多个HTTP接口,将在一个线程串行按顺序测试。

5)   接口脚本

一个脚本同时只能一个用户编辑,不能多人并行编辑。

但多个脚本可以多人同时编辑。

4 接口调试

4.1 整个脚本调试

一次性调试整个脚本的所有接口,选择调试类型为“整个脚本”,点击“切换调试”再选择执行器,点击运行调试

调试界面包括接口运行的瀑布图(支持每个接口的DNSTCP、首分片、接收时间)、日志,与录制对比

4.2 单个接口调试

只调试单个接口(即单个HTTP请求),例如下图的第一个GET

4.3 父子接口(关联依赖)调试

1)   调试整个模块

例如调试上图的描述名称节点“用户管理接口”,则将调试下面几个接口

2)   调试父子关系

例如调试上图的接口“获取权限”,则将调试下面几个接口

4.4 与录制对比

当接口是通过浏览器录制或抓包文件录制生成时,对比日志方便调试接口

4.5 关联参数

通过与录制日志对比,点击“识别关联”实现关联参数;

 

详细关联参数的介绍请点击:关联参数使用说明 的“4 录制与回放日志比较关联”

http://www.70testing.com/cloud/help/getPara.html

5 自动化测试

5.1 创建功能自动化测试

选择测试脚本(一个测试计划同时支持一个或多个脚本),每个脚本支持多个接口;

选择执行器(支持多个执行器,例如多个地区,北京、上海、深圳等等)

1)   脚本里接口串行

2)   脚本里接口并行

         当一个脚本里存在10000万接口时,每次自动化测试(版本迭代测试)假设需要花费6个小时,为了大幅缩短测试时间,可以设置并行多个线程(最大限制1000线程)执行1万个接口,每个线程可能执行10个接口,从而缩短测试时间,提升效率。

5.2 测试计划报告查看

点击查看报告

5.3 测试脚本报告查看

点击上图的

 

点击名称支持查看日志

5.4 接口脚本历史报告

进入脚本(包含多个接口)的报告界面,点击查看脚本历史,可查看某个脚本的历史运行报告

点击“曲线展示”

5.5 单个接口历史报告

点击报告里某个接口右边的查看该接口历史运行情况

上图的曲线“圆点”支持点击查看日志

 

点击“表格展示”按钮

查看历史运行情况,点击“历史时间”可以查看日志

5.6 邮件通知

6 性能/压力测试

6.1 创建性能测试

选择一个测试脚本,默认测试整个脚本;

通过“选择HTTP”按钮可以选择只针对脚本里特定多个接口进行性能测试;

选择执行器,支持多个执行器,按压力大小添加相应个数的执行器。

1)   整个脚本

对整个脚本里的所有接口(HTTP请求)进行性能测试,可包括事务、集合点

2)   单个或多个接口

可选择脚本里的一个或多个接口进行性能测试,可包括事务、集合点

6.2 性能测试报告分析

性能测试的报告分析介绍请点击:报告分析说明

http://www.70testing.com/cloud/help/analysis.html

 

下面只展示小部分分析图片:

6.3 并发模型

性能测试的并发模型介绍请点击:并发模型说明

http://www.70testing.com/cloud/help/model.html

 

下面只展示小部分图片:

6.4 服务器监控(CPU、内存等资源)

服务器监控的介绍请点击:服务器监控说明

http://www.70testing.com/cloud/help/monitor.html

 

下面只展示小部分图片:

        

7 接口监控

7.1 创建接口监控

选择测试脚本(一个监控只能支持一个脚本),支持监控脚本里的一个或多个接口;

选择执行器(支持多个执行器,例如多个地区,北京、上海、深圳等等)

        

间隔时间默认1分钟,开始时间与结束时间范围。

7.2 接口报告查看

上图的曲线“圆点”支持点击查看日志

7.3 告警通知

接口失败或告警(例如时间超过阈值)将发送通知邮件