目录
不同项目组可以使用不同项目,或者同一项目组测试多个项目(多个版本),可通过项目管理实现。
管理员权限:支持添加、修改、删除项目;为项目分配用户;
普通用户:只能查看分配的项目,切换项目;
只有管理员权限才能添加、修改、删除用户
支持两级模块管理,每个脚本归属一个模块,直观管理测试用例/脚本
脚本包括有WEB UI脚本、HTTP协议脚本、接口脚本、其他协议(如TCP、SIP、FTP)脚本
上传CSV文件到平台,然后在测试计划(自动化测试、性能/压力测试、接口/业务监控)里引用,确保自动化每次执行、甚至性能测试每个虚拟用户使用不同的参数值。
左边的树形节点支持拖拽,支持多级。
一个脚本可以实现N个接口的管理,但不能同时多人编辑;不同脚本支持同时多人编辑。
通过录制创建接口可以提升编写效率和准确性,另外,保存了录制时的交互日志,可以在调试时进行比较和关联参数,让接口测试更简单。建议在测试环境具备情况下通过录制创建接口。
注意:
上图的描述名称只用来显示管理接口,在测试时,该节点将被忽略
左下角的“增加”按钮支持增加多种类型的节点
以POST发送JSON内容为例
内容类型选择JSON内容(目前支持),选择不同的格式内容,则下面的Header表格的Content-Type头域将变为对应的值。
按消息请求编辑对应的位置,有些请求可能需要修改HTTP的头域表格。
目前支持常用的方法如上图
1、 表单参数
2、 JSON内容
支持格式化查看JSON
通过浏览器操作录制接口,更快捷与精确;防止由于对接口与HTTP不够了解导致调试接口花费大量时间。
现在的BS系统基本是动静分离,静态文件的URL路径与动态请求的URL路径不一样。如果只需要过滤后台的动态接口。
点击上图的“高级设置”按钮,设置过滤规则
不录制静态资源;另外过滤URL路径包含设置的请求(多个规则使用分号“;”分隔)
在脚本用例管理点击新建HTTP脚本
然后点击导入按钮
在弹出窗口选择json文件或者url,点击创建接口
首先,在录制接口前打开浏览器的F12(开发者工具),然后操作页面得到HTTP接口交互内容
如上图,然后右键保存为har文件。
选择保存的har文件。
如果需要过滤,可以配置下面的过滤规则
现在微服务、分布式是主流框架,后台可能涉及多个服务接口的联合调用;而且接口是后台服务间调用(不是浏览器直接调用)。
可以通过抓包录制接口(Linux使用tcpdump、windows使用wireshark),更快捷与精确;防止由于对接口与HTTP不够了解导致调试接口花费大量时间。
支持tcpdump抓包或者wireshark抓包,抓包文件格式必须保存为pcap格式。Wireshark工具支持保存或另存为pcap格式
输入端口(服务监听的端口)可以更精确过滤;
如果输入域名(或者IP地址)也可以将其他TCP报文或无关HTTP请求过滤;
现在的BS系统基本是动静分离,静态文件的URL路径与动态请求的URL路径不一样。如果只需要过滤后台的动态接口。
点击上图的“高级设置”按钮,设置过滤规则
不录制静态资源;另外过滤URL路径包含设置的请求(多个规则使用分号“;”分隔)
微服务或分布式架构的服务接口一般在多台服务器上,因此抓包可能需要在多台服务器(服务接口所在机器)上分别抓包;
可以一个抓包文件一个抓包文件的解析生成脚本,然后复制脚本里的所有接口请求,在另一个脚本黏贴合并。
平台提供参数化(也称数据驱动)功能,即每次自动化次数或性能测试的虚拟用户发送的数据都不一样。当发送数据内容里面存在“{key}”符号时,平台自动将key值替换为对应的实际参数值,例如:
上图username、password、validateCode都有大括号,表示需要在正常运行时替换成真实的值。
平台支持在脚本的“参数列表”里添加参数,也支持通过上传CSV文件实现参数化;
详细参数介绍请点击:参数使用说明
http://www.70testing.com/cloud/help/parameter.html
在实际业务中,可能多个接口是有关联依赖的,例如A调用B,B返回某个值b,A再将该值带上调用C;
因此,需要从B返回的接口内容里提取b值,平台称为关联参数
关联参数支持有JSON提取、XML提取、Xpath提取,还有左右文本提取;
详细关联参数的介绍请点击:关联参数使用说明
http://www.70testing.com/cloud/help/getPara.html
检查点可以在返回的响应消息里查找是否存在特定“内容”,如果存在,则表示请求成功,否则失败。
例如检查文本设置为“test”,如果http响应内容包括test,则请求成功,否则失败。
当响应内容的格式为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
检查内容长度是否在设定的范围内,是则表示请求成功,否则失败。
只检查长度的好处,不需要解析和保存http内容,当性能测试时,可以减少CPU资源,提升性能。
有些接口需要特定参数替换(加密、特定算法),平台无法支持,可以用户自己实现java代码,然后打成jar包,并放在执行器安装目录的agent的ext目录
详细介绍请点击:调用jar包使用说明
http://www.70testing.com/cloud/help/java.html
接口正常处理时间为1秒,如果超过2秒将影响体验,需要告警。
如下图设置,当处理时间超过2秒,将在报告里显示告警;如果设置了邮件通知,时间告警将触发邮件通知。
某些业务场景,调用服务接口后,服务会立即返回成功(例如200 OK),然后再异步处理。
调用方再轮循检测服务接口是否处理完成。
设置检查点,检查收到json内容的result为true表示完成;
超时时间为100秒,即100秒还没收到result为true则认为失败,否则100内收到则成功。
当一个脚本里存在10000万接口时,每次自动化测试(版本迭代测试)假设需要花费6个小时,为了大幅缩短测试时间,可以设置并行多个线程(最大限制1000线程)执行1万个接口,每个线程可能执行10个接口,从而缩短测试时间,提升效率。
0表示自动根据接口个数并发线程;
100则表示启动100个线程
如果HTTP接口有层级关系(父子关系),将在同一线程串行执行(按顺序执行);有层级关系的多个接口一般是给有关联依赖的接口使用。
例如A调用B,B返回某个值b,A再将该值带上调用C;
注意:
接口并发线程只有在功能自动化测试生效,在压力/性能测试将失效,压力测试将自动改为每个虚拟用户串行执行接口。
上图的1,初始化操作或结束清理状态。
在并发多个线程测试接口时,如果每个接口需要保证登陆成功才能继续测试,或者每次测试前需要在数据库准备测试数据(插入测试数据)才能测试后面的接口。
可以将初始化的登陆或数据库操作放到事务里,即保证登陆成功后续接口才继续测试。
描述名称:用于模块描述,直观界面更清晰,测试时将被忽略。
上图的2,接口管理。
多个接口在一级(或在描述节点内),功能自动化测试时,将根据线程数分配到不同线程执行。
上图的3与4,关联依赖接口管理,即多个接口有层级关系,父节点与多个孩子节点。
例如A调用B(获取权限),B返回某个值b(权限值),A再将该值带上调用C;
在接口多线程并发时,将被分配到同一个线程,实现串行测试,即有顺序测试多个接口。
注意:
父子层级关系的多个HTTP接口,将在一个线程串行按顺序测试。
一个脚本同时只能一个用户编辑,不能多人并行编辑。
但多个脚本可以多人同时编辑。
一次性调试整个脚本的所有接口,选择调试类型为“整个脚本”,点击“切换调试”再选择执行器,点击运行调试
调试界面包括接口运行的瀑布图(支持每个接口的DNS、TCP、首分片、接收时间)、日志,与录制对比
只调试单个接口(即单个HTTP请求),例如下图的第一个GET
例如调试上图的描述名称节点“用户管理接口”,则将调试下面几个接口
例如调试上图的接口“获取权限”,则将调试下面几个接口
当接口是通过浏览器录制或抓包文件录制生成时,对比日志方便调试接口
通过与录制日志对比,点击“识别关联”实现关联参数;
详细关联参数的介绍请点击:关联参数使用说明 的“4 录制与回放日志比较关联”
http://www.70testing.com/cloud/help/getPara.html
选择测试脚本(一个测试计划同时支持一个或多个脚本),每个脚本支持多个接口;
选择执行器(支持多个执行器,例如多个地区,北京、上海、深圳等等)
当一个脚本里存在10000万接口时,每次自动化测试(版本迭代测试)假设需要花费6个小时,为了大幅缩短测试时间,可以设置并行多个线程(最大限制1000线程)执行1万个接口,每个线程可能执行10个接口,从而缩短测试时间,提升效率。
点击查看报告
点击上图的
点击名称支持查看日志
进入脚本(包含多个接口)的报告界面,点击查看脚本历史,可查看某个脚本的历史运行报告
点击“曲线展示”
点击报告里某个接口右边的查看该接口历史运行情况
上图的曲线“圆点”支持点击查看日志
点击“表格展示”按钮
查看历史运行情况,点击“历史时间”可以查看日志
6 性能/压力测试
选择一个测试脚本,默认测试整个脚本;
通过“选择HTTP”按钮可以选择只针对脚本里特定多个接口进行性能测试;
选择执行器,支持多个执行器,按压力大小添加相应个数的执行器。
对整个脚本里的所有接口(HTTP请求)进行性能测试,可包括事务、集合点
可选择脚本里的一个或多个接口进行性能测试,可包括事务、集合点
性能测试的报告分析介绍请点击:报告分析说明
http://www.70testing.com/cloud/help/analysis.html
下面只展示小部分分析图片:
性能测试的并发模型介绍请点击:并发模型说明
http://www.70testing.com/cloud/help/model.html
下面只展示小部分图片:
服务器监控的介绍请点击:服务器监控说明
http://www.70testing.com/cloud/help/monitor.html
下面只展示小部分图片:
选择测试脚本(一个监控只能支持一个脚本),支持监控脚本里的一个或多个接口;
选择执行器(支持多个执行器,例如多个地区,北京、上海、深圳等等)
间隔时间默认1分钟,开始时间与结束时间范围。
上图的曲线“圆点”支持点击查看日志
接口失败或告警(例如时间超过阈值)将发送通知邮件