当前位置: 首页 > news >正文

自动化框架 - QA

  1. Q:框架的能力是什么?

A:统一标准,数据管理(测试数据,环境变量),可观测和报告,扩展能力,执行能力等,与业务无关
  1. Q:是不是只能用Excel 写测试用例

A:不是,对于API 功能,步骤不多但测试数据多,适合excel数据驱动。后续会补充pytest 用例及其例子。其他的测试场景需评估测试数据。但是只要不是有逻辑分支的(类似于如果条件A下一步B否则C),都可以用Excel
  1. Q:框架只能做API测试?

A:不是,目前UI(进行中),sql(进行中),websocket(进行中),还会支持kafka,linux等等
  1. Q:为什么用Excel

A:数据驱动的测试用Excel,业务功能为主的团队首选Excel
数据驱动举例:
YML和Excel都是常用的自动化测试的文件,一旦测试用例和测试数据达到一定规模, YML在维护和管理上表现就不如Excel好
方案 适用场景 优势 劣势 技术门槛 版本控制
Excel • 业务验收测试 • 业务友好,可视化编辑 • 版本控制困难
• 非技术人员维护 • 批量管理方便 • 依赖较重
• 中等数据量 • 组织结构化 • 类型安全性差
YAML • 技术团队自动化 • 版本控制友好 • 缩进敏感易错 优秀
• CI/CD集成 • 结构清晰 • 非技术人员学习成本
• 需要版本控制 • 注释支持 • 工具支持弱
  • 轻量快速  
JSON • API测试 • 通用性强 • 可读性差 优秀
• 前后端分离 • 解析性能好 • 无注释支持
• 系统间数据交换 • Web友好 • 编辑繁琐
SQL Database • 大规模测试数据 • 动态数据支持 • 环境依赖复杂 困难
• 动态数据生成 • 强大查询能力 • 维护成本高
• 多团队共享 • 数据一致性 • 版本管理复杂
  • 高性能  
代码硬编码 • 简单测试场景 • 开发简单直接 • 维护灾难 优秀
• 快速原型验证 • 无外部依赖 • 无法复用
• 固定测试数据 • 类型安全 • 业务逻辑混杂
  1. Q:之前已有自动化,需要转用现有框架吗?

A:不是必须,自动化目的是提效,如果之前写的测试用例在维护和测试方面都表现很好不需要迁移
  1. Q:子系统自动化是不是只用写auto-test-icc2?

A:不是,也需要整理business层,做业务抽取
  1. Q:后续devops整合后期望的执行流程

A:例子
上午8点:执行公共前置数据准备(各种配置,环境检查)
上午8点半:各个子系统用例执行
用例执行完触发:清理数据
  1. Q:Excel 中Json格式小技巧

A:https://www.bejson.com/
把参数copy 到上述在线格式校验工具中,验证对了再copy 到Excel中(一定要保证json格式是正确无误的)
请把参数那一列Excel单元格格式改为文本
  1. Q: pip install 报错No matching distribution found

ERROR: Could not find a version that satisfies the requirement playwright (from auto-test-framework-common) (from versions: none)
ERROR: No matching distribution found for playwright
 
A:安装python > 3.8+
 
  1. Q: API 参数是json格式的string

A: 双引号里面要用单引号, sample如下
{
"Content-Type": "application/json",
"x-zkj-header": "{'type':'web','tenant':'$demo.tenant','version':'v2','product':'zrtc','user':'@user.string:value'}"}
  1. Q: No module named 'src'

A:看看python解释器有没有配对, 进入虚拟环境, 安装依赖
# 创建虚拟环境 python -m venv .venv
激活虚拟环境
.venv\Scripts\activate
安装依赖
pip install -r requirements.txt
 
  1. Q: git 配置令牌

A:到git上生成token
 
  1. Q:saveAsVariable是什么?

A:是框架用来存返回结果的参数,如果期望返回结果到下一步使用, 要给返回值一个变量名。 Sample 如下, 红线部分会把响应结果存入这个response变量中,(saveAsVariable一般是必填的,否则框架给了默认的保存地址,下面步骤想取到你想获取的对应地址的结果就不对了。比如 api的response的默认保存地址是 api_response, 你在测试用例的参数里面没有指定特定的保存地址response,但是你下面的步骤中直接从@resonse.json:data里面取值,肯定是空值)
  1. Q:请求参数无名,要放data里

例子:
以下API的data参数为一个string的数值,不是json
接口文档说明为:
A: 请在header中加 "Content-Type":"text/plain",
 
  1. Q:Python版本一直不对,如果修改环境变量?

账户的环境变量可自行添加;系统的环境变量需授权,联系管家洋远程协助授权,修改系统环境变量,重新打开命令行工具检查版本。
 
  1. Q:环境管理,不同环境的yml

A: 后续会改为perf.yml, test1.yml
 
  1. Q:执行脚本之后的log优化

是否可以添加log记录当前组装之后的url请求以及request body具体内容?现在log显示出的url是带组装参数的,有时候无法确定组装的这个url是否是正确有效的,request body同理
A:会改进
 
  1. Q:如何将响应的部分字段作为变量传值给下一个请求?

A:可以使用将所需要字段存为变量,作为下一个请求的输入
context_manager = get_context_manager()
context_manager.set(save_as_variable, result_data)
例如:
response=self.ruleservice_api.send_request(params=data_for_rule_getStrategyByCode)
context_manager = get_context_manager()
context_manager.set("strategyCode_to_delete", response['data']['data'][0]['strategyCode'])
data_for_rule_getStrategyByCode=self.test_data["hook_before_ruleservice_api_rule_deleteStrategy"]
hook_before_ruleservice_api_rule_deleteStrategy:method: "post"API: "/strategy/deleteStrategy"header: |{"tenantId": "TE16801824195507778","content-type": "application/json"}body: |{"tenantId": "TE16801824195507778","strategyCode": "@strategyCode_to_delete.string:value","updatedBy": "auto_test","newValue": 1}
  1. Q: 使用pytest怎么使用进行数据校验?

A: 两种方法
方法一:独立判断
result=self.data_validator.validate_data(**self.test_data["validate_200"])
validate_200:{"field_name": "status_code","actual_value": "@init_rule_param_response.json:data.code","operator": "equal","expect_value": "500"}
方法一:放在同一个数据对应的"params"下:
result = self.data_validator.validate_data(**self.test_data["hook_before_ruleservice_api_init_rule_param"])
hook_before_ruleservice_api_init_rule_param:method: "get"API: "/strategy/initData"header: |{tenantId:TE16801824195507778content-type:application/json}saveAsVariable: "init_rule_param_response"'params': |{"field_name": "status_code","actual_value": "@init_rule_param_response.json:data.code","operator": "equal","expect_value": "500"}
http://www.jsqmd.com/news/453134/

相关文章:

  • AI+JavaWeb(二) Maven+单元测试
  • 基于模拟退火算法(SA)求解多车场车辆路径问题(MDVRP)的MATLAB实现
  • 2026年紧致提拉抗衰产品推荐:美人媄在定义“面部精雕”? - 深度智识库
  • 2026卫浴品牌排名情况,集祥陶瓷在性价比方面表现如何 - myqiye
  • 287_尚硅谷_反射的注意事项和细节(1)
  • 上海生产线外包哪家强?TOP5 优质服务商排名盘点 - 包罗万闻
  • 2026年评价高的移动式升降车厂家推荐:电驱动升降车/高空作业升降车推荐厂家 - 行业平台推荐
  • 【工具推荐】Office办公软件下载:2026最新Word/Excel/PPT获取全攻略 - sdfsafafa
  • Windows 系统 JDK1.8 + Tomcat 安装与配置教程
  • 【工具推荐】KMPlayer下载:支持4K/8K解码的万能格式播放器 - sdfsafafa
  • 聊聊2026年全国耐磨缝纫线定制生产,哪家性价比高 - 工业推荐榜
  • 不与他人争光芒,只与自己共成长
  • 自动化框架 - 核心模块使用指南 - Playwright
  • IT人备考心得分享
  • 全屋定制/门窗/家具采购季:2026年广东家装节去哪看?第五十三届深圳家装节 - 深度智识库
  • [Python] 关于使用python去访问Doris的问题
  • 2026年热门的电驱动升降车工厂推荐:高空作业升降车实力工厂推荐 - 行业平台推荐
  • 2026 B2B销售管理工具横评:6款核心能力深度对比 - 毛毛鱼的夏天
  • 自动化框架 - 核心功能使用指南 - 用例过滤Tag使用
  • 细聊雅卓宁波机床展有实力吗,2026年机床展性价比之选大盘点 - 工业设备
  • 2026年广东门窗家具全屋定制去哪看?深圳家装节一站式搞定 - 深度智识库
  • 自动化框架 - 核心模块使用指南 - API
  • 北京记录者商行深耕老物件回收 让城市记忆与闲置价值双向焕新 - 品牌排行榜单
  • 2026年评价高的垃圾桶工厂推荐:室外垃圾桶/环卫垃圾桶/室内垃圾桶精选厂家 - 行业平台推荐
  • 3D打印服务怎么挑?全国5家主流服务商深度对比与排行 - 深度智识库
  • 2026年质量好的景区垃圾桶厂家推荐:环卫垃圾桶精选公司 - 行业平台推荐
  • 必修2.1 种群及动态
  • 说说有名的财税合规企业排名,华光讯在重庆等地区表现咋样 - 工业品牌热点
  • 2026年五大主流CRM系统深度测评:为不同规模与行业企业提供精准选型参考 - 毛毛鱼的夏天
  • 2026年AI优化公司费用多少,蓝戈链企性价比高值得选 - mypinpai