自动化测试用例编写全局参数

本文档详细介绍了自动化测试框架的用例编写规则,包括字段说明、关联参数、名词解释及规范,以及使用规则。框架基于pytest,支持数据驱动和allure报告。用例涉及headers、body、assert等多个关键字段的参数化处理,包括全局字典、默认全局变量的使用。此外,还涵盖了jsonPath的使用方法,以及如何处理数据库查询和断言。
摘要由CSDN通过智能技术生成

.接口自动化规则说明
前言…2
一、字段说明…2
二、关联参数…3
1.关联参数命名规范 …3
三、名词解释及规范 …3
1.全局字典…3
2.默认全局变量…3
3.字典填写规范…4
四、使用规则说明…4
1.priority…4
2.headers…4
跨项目登录 …5
3.body …6
4.autoProduct…6
5.assert…8
6.save…9
7.beforeSql …10
8.executeSql…11
9.expectSqlResult…11
10.count…12
11.wati…12
12.product…12
13.method …13
upload…14
download…14
五、jsonPath 使用说明…14
1.运算符 …14
2.JsonPath 案例 …15
3.jsonPath 工具…16
六.框架使用相关…16
1.自动化环境安装指南…16
2.运行用例指南…17
runTestcase.py 运行…17
test_*.py 运行…18
3.选择日志打印…19
4.高效调试用例…19
5.全局变量配置及使用…20
1
2
前言
当前接口自动化测试框架采用的是 pytest+数据驱动+allure 集成框架,本文为解释自动化框架编写
用例规则,让使用者能够更快更方便的编写出高可用的测试用例。
如下为自动化使用规则:
1、python 安装:略
2、IDE 集成环境安装:略
Pydev + Eclipse、PyCharm 等 IDE 集成工具,推荐 PyCharm。编译环境引用
3、allure 报告插件安装。注意:需配置环境变量,可提供安装包
4、pytesseract 随机图形认证登录插件安装(管理后台)。注意:需配置环境变量,可提供安装包
5、依赖包安装:切换到所在文件目录下,执行指令:pip install -r requirements.txt。出现 time out 超
时,重新执行该指令
6、数据库环境配置:FCB_Auto_Test/config/db/xx_db.cfg,xx 表示 test/uat/sit2,option 按格式填写
即可
7、数据库开关:FCB_Auto_Test/config/env_info.cfg 中的 DB_ISOPEN,YES 为打开,NO 为关闭
8、常量配置:FCB_Auto_Test/config/public/public_xx.cfg,xx 表示 test/uat/sit2
9、单个项目执行,选中右击->running,项目同级及下级所有 xlsx 文件都会被执行
10、整个项目执行(生成 allure 报告)选中 runTestcase.py 右击->running 或 python runTestcase.py
–e test
11、报告打开,打开终端切换到报告所在目录,输入指令:allure serve
一、字段说明
caseid 用例 id,预留字段
priority 用例优先级,如 P0、P1
module 模块名称
interfacePath 接口路由
interfaceName 接口名称
method 请求类型
description 用例描述
headers 请求头,字典 dict
body 请求参数,字典 dict
autoProduct 自动生成数据,字典 dict
assert 断言,使用 jsonpath 的定位表达式针对 response 进行结果定位,取到的值会与左边的预期结果进
行断言
save 保存全局变量数据,是指在 response 返回的结果中,部分字段的 value 需要给到下一个或者多
个接口使用的数据
beforeSql 执行 sql,用于数据查询但不做断言
executeSql 执行 sql,用于数据查询需断言
expectSqlResult sql 预期结果,用于数据库校验
count 用例执行次数
wait 等待时间,以秒为单位,需要则加上这一列,不需要可以不加
3
product 产品,用例属于那个产品模块
owner 用例编写者
二、关联参数
为了处理接口之间的依赖关系,从而引入了关联参数。那么,这个框架如何使用关联参
数?以登录为例:
u s e r n a m e 此 形 式 为 关 联 参 数 , 此 处 为 关 联 用 户 名 , 即 需 要 从 全 局 字 典 中 获 取 k e y 为 的 v a l u e 替 换 掉 {username}此形式为关联参数,此处为关联用户名,即需要从全局字典中获取 key 为的 value 替换 掉 usernamekeyvalue{username}这整个字符串; 1.关联参数命名规范
a.关联参数形式为“ k e y ” , 编 写 用 例 时 , 关 联 参 数 里 面 k e y 的 格 式 不 限 定 大 小 写 , 若 有 多 个 k e y 命 名 重 复 , 但 是 v a l u e 不 同 , 可 根 据 需 要 用 下 划 线 命 名 方 式 区 分 , 如 “ {key}”,编写用例时,关联参数里面 key 的格式不限定大小写,若有多个 key 命 名重复,但是 value 不同,可根据需要用下划线命名方式区分,如“ keykeykeyvalue线{key_1}”;
三、名词解释及规范 1.全局字典
全局字典,顾名思义,就是全局可以引用的字典(变量),也可称为全局变量。在本框架中,全局字
典中会存放所有自动生成数据 autoProduct 的键值对(生成数据后的)、save 字段对应的键值对(定位
获取到 response 数据后的)另外就是在运行用例前就导入的各种账号等信息,当 body、headers、assert
需要使用时,只需使用 k e y , 即 可 引 用 全 局 字 典 数 据 的 值 。 P s : 全 局 字 典 是 框 架 中 的 一 个 概 念 , 平 时 写 接 口 用 例 接 触 不 到 , 这 里 引 出 这 个 概 念 , 只 是 为 了 解 释 框 架 是 如 何 处 理 依 赖 关 系 的 。 2. 默 认 全 局 变 量 为 了 更 方 便 使 用 框 架 , 框 架 默 认 给 每 个 项 目 默 认 提 供 了 部 分 需 自 动 生 成 的 全 局 变 量 , 可 直 接 以 {key},即可引用全局字典数据的值。 Ps:全局字典是框架中的一个概念,平时写接口用例接触不到,这里引出这个概念,只是为了解释框架是 如何处理依赖关系的。 2.默认全局变量 为了更方便使用框架,框架默认给每个项目默认提供了部分需自动生成的全局变量,可直接以 keyPs2.便使{key}
的方式引用,目前系统提供全局变量如下:
4
key 含义及说明
now_time 即时生成当前时间,如:‘2020-12-08 09:30:16’,使用方式: n o w t i m e t i m e s t a m p 即 时 生 成 的 当 前 时 间 的 13 位 毫 秒 级 时 间 戳 , 如 : ′ 160739102709 5 ′ , 使 用 方 式 : {now_time} timestamp 即时生成的当前时间的 13 位毫秒级时间戳,如:'1607391027095',使用方式: nowtimetimestamp131607391027095使{timestamp}
timestamp_sec 即时生成当前时间的 10 位秒级时间戳,如:‘1607391257’,使用方式: t i m e s t a m p s e c s t a r t t i m e 即 时 生 成 当 前 时 间 − 30 天 时 间 , 如 : ′ 2020 − 11 − 0810 : 54 : 2 4 ′ , 使 用 方 式 : {timestamp_sec} start_time 即时生成当前时间-30 天时间,如:'2020-11-08 10:54:24',使用方式: timestampsecstarttime302020110810:54:24使{start_time}
end_time 即时生成当前时间+30 天时间,如:‘2020-12-08 10:54:27’,使用方式: e n d t i m e n o w d a t e 即 时 生 成 当 前 日 期 , 如 : ′ 2020 − 12 − 0 8 ′ e n d d a t e 即 时 生 成 当 前 日 期 + 60 天 , 如 : ′ 2021 − 02 − 1 0 ′ s i g n 即 时 生 成 的 签 名 , 使 用 方 式 : {end_time} now_date 即时生成当前日期,如:'2020-12-08' end_date 即时生成当前日期+60 天,如:'2021-02-10' sign 即时生成的签名,使用方式: endtimenowdate20201208enddate+6020210210sign使{sign}或 s i g n t y p e , t y p e 为 l o g i n i n f o ∗ . x l s x 文 档 里 面 对 应 账 号 的 t y p e 3. 字 典 填 写 规 范 编 写 接 口 自 动 话 用 例 时 , 具 有 多 个 键 值 对 的 字 典 需 填 入 e x c e l , 应 先 格 式 化 再 填 入 ; 四 、 使 用 规 则 说 明 这 里 会 对 编 写 用 例 中 , 部 分 较 重 要 字 段 的 使 用 规 则 进 行 详 细 说 明 ; 1. p r i o r i t y 作 用 : 优 先 级 运 行 , 必 填 说 明 : 按 优 先 级 运 行 c a s e ; 关 联 优 先 级 标 签 为 e x c e l 测 试 用 例 里 面 的 p r i o r i t y 一 列 ; 使 用 说 明 : 可 有 多 种 方 式 1 ) 使 用 命 令 行 运 行 , p y t h o n r u n T e s t c a s e . p y – p p 0 , 表 示 运 行 p 0 级 用 例 2 ) 修 改 默 认 值 , 修 改 r u n T e s t c a s e . p y 的 默 认 值 a l l 为 期 望 值 , 然 后 右 上 角 点 击 运 行 按 钮 运 行 ; 3 ) 修 改 配 置 文 件 , 修 改 e n v i n f o . c f g 的 [ P R I O R I T Y ] 标 签 的 p r i o r i t y 的 值 为 期 望 值 , 然 后 直 接 运 行 t e s t ∗ . p y 等 对 应 项 目 文 件 ( 此 方 法 不 适 用 命 令 行 和 直 接 运 行 r u n T e s t c a s e . p y 文 件 ) ; 2. h e a d e r s 作 用 : 请 求 头 , 支 持 参 数 化 , 必 填 说 明 : 部 分 接 口 请 求 需 要 添 加 请 求 头 。 如 请 求 头 需 要 添 加 鉴 权 令 牌 , 则 需 要 在 登 录 接 口 l o g i n 登 录 成 功 后 获 取 r e s p o n s e 里 面 的 登 录 令 牌 , 然 后 h e a d e r s 里 面 对 应 请 求 头 字 段 的 v a l u e 处 写 上 关 联 参 数 即 可 。 参 数 关 联 方 式 : “ {sign_type},type 为 login_info_*.xlsx 文档里面对应账号的 type 3.字典填写规范 编写接口自动话用例时,具有多个键值对的字典需填入 excel,应先格式化再填入; 四、使用规则说明 这里会对编写用例中,部分较重要字段的使用规则进行详细说明; 1.priority 作用:优先级运行,必填 说明:按优先级运行 case;关联优先级标签为 excel 测试用例里面的 priority 一列; 使用说明: 可有多种方式 1) 使用命令行运行,python runTestcase.py –p p0,表示运行 p0 级用例 2) 修改默认值,修改 runTestcase.py 的默认值 all 为期望值,然后右上角点击运行按钮运行; 3)修改配置文件,修改 env_info.cfg 的[PRIORITY]标签的 priority 的值为期望值,然后直接 运行 test_*.py 等对应项目文件(此方法不适用命令行和直接运行 runTestcase.py 文件); 2.headers 作用:请求头,支持参数化,必填 说明:部分接口请求需要添加请求头。如请求头需要添加鉴权令牌,则需要在登录接口 login 登录成功后 获取 response 里面的登录令牌,然后 headers 里面对应请求头字段的 value 处写上关联参数即可。参数 关联方式:“ signtypetypelogininfo.xlsxtype3.excel使使1.prioritycaseexcelp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值