接口自动化测试平台-HttpRunnerManager-功能模块

2022-07-25 14:08:44 浏览数 (1)

功能模块

目录

  • 1、项目管理
    • 1.1、新增项目
    • 1.2、项目列表
    • 1.3、debugtalk.py
  • 2、模块管理
    • 2.1、新增模块
    • 2.2、模块列表
  • 3、用例管理
    • 3.1、新增用例
      • 3.1.1、messages
      • 3.1.2、request
      • 3.1.3、extract/validate
      • 3.1.4、variables/parameters/hooks
    • 3.2、用例列表
  • 4、配置管理
    • 4.1、新增配置
      • 4.1.1、messages
      • 4.1.2、variables/parameters/hooks
      • 4.1.3、request
    • 4.2、配置列表
  • 5、测试计划
    • 5.1、测试套件
    • 5.2、定时任务
  • 6、报告管理
    • 6.1、查看报告
  • 7、系统设置
    • 7.1、运行环境
    • 7.2、任务监控

使用已注册用户test进行登录,登陆后默认跳转到首页。左侧为菜单栏,上排有快捷操作按钮,中间显示项目、模块、用例、套件的数量统计和执行测试结果趋势图。

如图所示:数量统计(项目、模块、用例、测试套件)和执行测试结果趋势图(统计:异步执行、定时执行)显示效果。

1、项目管理

1.1、新增项目

首先应该先添加一个项目,用例都是以项目为维度进行管理的,添加成功后会自动重定向到项目列表里。如图所示:填写项目信息后点击提交即可。

1.2、项目列表

支持对项目进行二次编辑,也可以进行筛选等操作。

注意:删除操作会强制删除该项目下所有数据,请谨慎操作。

可以选择单个或者批量运行。选择运行环境,执行方式支持同步或者异步,异步支持自定义报告名称,默认时间戳命名。

同步:是指在当前页等待用例执行完成后,当前页会自动跳到执行报告页面。

异步:是指用例在后台执行,执行完报告不会主动显示到页面,只会保存在“报告管理-查看报告”下,用户需自己查看。

1.3、debugtalk.py

自定义辅助函数,可以写一些Python脚本。每个项目都有自己的debugtalk.py。

如图所示:打开debugtalk.py,进行脚本编写。

调用函数的方法是 ${函数名(参数1, 参数2, …)}

例如有个get_userId()函数,调用此函数方法是 ${get_userId()}

例如有个get_userId(id)函数,参数id为变量,get_id可以获取id值,调用此函数方法是 {get_userId(

2、模块管理

2.1、新增模块

项目创建完成后,就可以新增模块了,之后用例或者配置都会归属模块下,必须指定模块所属的项目。如图所示:填写模块信息后点击提交即可。

2.2、模块列表

支持对模块进行二次编辑,也可以进行筛选等操作。

注意:删除操作会强制删除该模块下所有数据,请谨慎操作。

可以选择单个或者批量运行。选择运行环境,执行方式支持同步或者异步,异步支持自定义报告名称,默认时间戳命名。

同步:是指在当前页等待用例执行完成后,当前页会自动跳到执行报告页面。

异步:是指用例在后台执行,执行完报告不会主动显示到页面,只会保存在“报告管理-查看报告”下,用户需自己查看。

3、用例管理

3.1、新增用例

遵循HttpRunner脚本规范,可以跨项目、跨模块引用用例,支持拖拽排序,动态添加和删减,极大地方便了场景组织。

注意:用例必须属于某一模块,而模块必须属于某一项目。

3.1.1、messages

选择所属项目与可选模块,可选用例可添加依赖的用例,可添加可选配置,用例执行顺序支持拖拽排序。

3.1.2、request

填写请求信息。

1、URL:请求地址。

2、Method:请求方法,支持POST、GET、PUT、DELETE。

3、Type:请求参数(对于POST方法,data是指消息体是键值对表单,json是指消息体是json串;params是指用GET方法时带在URL后的参数)。

4、headers:请求头。

使用”变量名”的方式来引用其变量值。例如 username

使用”{函数名(参数1, 参数2, …)} ”的方式来调用函数。例如 {get_userId()}

3.1.3、extract/validate

抽取接口返回值/接口断言。

1、extract:完成请求后,从返回内容中抽取数据存入变量,在后面的请求中,可以通过引用该变量来获取该值。假设返回json,那么就是content.key或者content.key.0.key形式(0是索引)。

抽取复杂返回值,例如:

抽取content的dataList列表的首个元素的name字段是以字符串’.ABC’结尾的。

content.dataList.0.name/endswith/(string)/’.ABC’

2、validate:接口断言。可以引用extract里的,也可以直接抽取。

使用”变量名”的方式来引用其变量值。例如 username

使用”{函数名(参数1, 参数2, …)} ”的方式来调用函数。例如 {get_userId()}

3.1.4、variables/parameters/hooks

局部变量/参数列表/hook机制。

1、variables:局部变量,只在当前用例有效。可以给request、validate,通过$key引用即可。

2、parameters:参数列表,只在当前用例有效。参数列表中放入该变量的多种可能的值,则这一个用例会自动使用这多个值分别执行一次。注意以下几点:

(1)对于同时存在多个参数列表,则需要对其排列组合的每一种情况都执行一次。

例如:

xx : [xxvalue1, xxvalue2]

yy : [yyvalue1, yyvalue2, yyvalue3]

会按以下六种情况各执行一次用例:

xx=xxvalue1, yy=yyvalue1

xx=xxvalue1, yy=yyvalue2

xx=xxvalue1, yy=yyvalue3

xx=xxvalue2, yy=yyvalue1

xx=xxvalue2, yy=yyvalue2

xx=xxvalue2, yy=yyvalue3

(2)对于参数间有对应关系的,可以按xx-yy: [xxvalue1-yyvaule1, xxvalue2-yyvalue2]的方式定义,只会执行两种情况,这样就避免了无效的排列组合:

xx=xxvalue1, yy=yyvalue1

xx=xxvalue2, yy=yyvalue2

在使用多个账户/密码进行测试时,常用这种方式。

3、hooks:hook机制。

(1)setup_hooks:在HTTP请求发送前执行hook机制,主要用于准备工作;也可以实现对请求的request内容进行预处理。

(2)teardown_hooks:在HTTP请求发送后执行hook机制,主要用于测试后的清理工作;也可以实现对响应的response进行修改,例如进行加解密等处理。

使用”变量名”的方式来引用其变量值。例如 username

使用”{函数名(参数1, 参数2, …)} ”的方式来调用函数。例如 {get_userId()}

3.2、用例列表

支持对用例进行二次编辑,也可以进行筛选、复制、删除等操作。

运行用例可以选择单个或批量运行,选择运行环境,只能进行同步运行。

同步:是指在当前页等待用例执行完成后,当前页会自动跳到执行报告页面。

异步:是指用例在后台执行,执行完报告不会主动显示到页面,只会保存在“报告管理-查看报告”下,用户需自己查看。

4、配置管理

4.1、新增配置

可定义全局变量,全局hook,公共请求参数和公共headers,一般可用于测试环境,验证环境切换配置。

4.1.1、messages

填写配置名称、所属项目、所属模块、编写人员。

4.1.2、variables/parameters/hooks

全部变量/参数列表/hook机制。

1、variables:全部变量。可以给request、validate,通过$key引用即可。

2、parameters:全局参数列表。参数列表中放入该变量的多种可能的值,则这一个用例会自动使用这多个值分别执行一次。注意以下几点:

(1)对于同时存在多个参数列表,则需要对其排列组合的每一种情况都执行一次。

例如:

xx : [xxvalue1, xxvalue2]

yy : [yyvalue1, yyvalue2, yyvalue3]

会按以下六种情况各执行一次用例:

xx=xxvalue1, yy=yyvalue1

xx=xxvalue1, yy=yyvalue2

xx=xxvalue1, yy=yyvalue3

xx=xxvalue2, yy=yyvalue1

xx=xxvalue2, yy=yyvalue2

xx=xxvalue2, yy=yyvalue3

(2)对于参数间有对应关系的,可以按xx-yy: [xxvalue1-yyvaule1, xxvalue2-yyvalue2]的方式定义,只会执行两种情况,这样就避免了无效的排列组合:

xx=xxvalue1, yy=yyvalue1

xx=xxvalue2, yy=yyvalue2

在使用多个账户/密码进行测试时,常用这种方式。

3、hooks:hook机制。

(1)setup_hooks:在整个用例开始执行前触发hook函数,主要用于准备工作。

(2)teardown_hooks:在整个用例结束执行后触发hook函数,主要用于测试后的清理工作。

使用”变量名”的方式来引用其变量值。例如 username

使用”{函数名(参数1, 参数2, …)} ”的方式来调用函数。例如 {get_userId()}

4.1.3、request

填写公共请求信息。

1、Type:公共请求参数(对于POST方法,data是指消息体是键值对表单,json是指消息体是json串;params是指用GET方法时带在URL后的参数)。

2、headers:公共请求头。

使用”变量名”的方式来引用其变量值。例如 username

使用”{函数名(参数1, 参数2, …)} ”的方式来调用函数。例如 {get_userId()}

4.2、配置列表

支持对配置进行二次编辑,也可以进行筛选、复制、删除等操作。

5、测试计划

5.1、测试套件

支持对测试套件进行二次编辑,也可以进行筛选、复制、删除等操作。

点击Add Suite,进行新增测试套件操作,选择要执行的用例,对已选中的用例可进行拖拽操作,来设置执行顺序,最后保存即可。

可以选择单个或者批量运行。选择运行环境,执行方式支持同步或者异步,异步支持自定义报告名称,默认时间戳命名。

同步:是指在当前页等待用例执行完成后,当前页会自动跳到执行报告页面。

异步:是指用例在后台执行,执行完报告不会主动显示到页面,只会保存在“报告管理-查看报告”下,用户需自己查看。

5.2、定时任务

对已创建好的定时任务可以进行开启、关闭、删除等操作,但不支持二次更改。

点击新增任务,创建一个定时任务,支持添加项目级别定时任务或者模块集合的定时任务,遵循crontab表达式,模块列表为空默认为整个项目,定时任务支持选择环境和配置,可设置将报告发送到指定邮箱里。

crontab示例:

10 * * * * 表示每X小时10分执行一次。

*/10 * * * * 表示每10分钟执行一次。

如图所示:邮箱收到定时任务执行后发送的测试报告。

6、报告管理

6.1、查看报告

可查看异步运行的报告和定时任务运行的报告,均会存储在数据库里,报告可以在线点击查看,也可进行下载、删除操作。

打开报告显示效果(基于ExtentReports实现)。

7、系统设置

7.1、运行环境

支持对运行环境进行二次编辑,也可以进行删除操作。

点击添加环境,进行新增环境,输入环境名称、请求地址、描述,点击提交即可。

7.2、任务监控

可查看任务列表和状态信息。

0 人点赞