版本更新记录
2.11.0(2024/11/15)
Fix 🐛
- 修复函数
sudo_run_cmd参数workdir传入参数不能自动解析expanduser的问题;
2.10.0(2024/11/08)
Fix 🐛
- 不再生成 xml 报告;
- 修复远程执行模式下,代码发送失败退出码为0的问题;
2.9.0(2024/11/01)
Fix 🐛
- 修复远程交互式控制文件描述符占用超限的问题;
2.6.9(2024/08/05)
Fix 🐛
Cmd.sudo_run_cmd增加workdir功能。- 将
run_cmd固定shell默认指定为/bin/bash。 - 临时处理
input_message方法,在wayland输入中文末尾多出空格的问题。 - 修改部署客户端设备
youqu环境时,阻塞在密码输入。 - 扩展
OCR断言支持区域断言,提升精准度,优化OCR识别范围筛选方法。
2.6.8(2024/07/15)
New 🌟
git commit功能增加显示明细数据。- 新增在所有属性中查找同名节点的功能。
2.6.7(2024/07/15)
Fix 🐛
- 修复
Wayland下窗管返回的window_info内获取应用名称的逻辑错误的问题。
2.6.6(2024/07/05)
New 🌟
git commit统计功能新增commit msg信息获取。
Fix 🐛
- 修复测试单驱动收集用例数量为 0 的问题;
- 修复
Wayland下窗管返回的应用名称错误的问题;
2.6.5(2024/06/11)
Fix 🐛
- 修复用例失败截图添加到测试报告时报错的问题;
2.6.4(2024/06/07)
Fix 🐛
- 由于窗管团队修改获取窗口信息的返回值,导致 Wayland 下相对位移定位方案报错,YouQu 进行适配。
2.6.3(2024/06/07)
New 🌟
- 新增
ocr范围识别;
Fix 🐛
- 测试单驱动,手动回填模式报错;
- 修改
Wayland下中文写入剪贴版问题,改为使用wl-copy命令实现; - 修复远程交互控制测试机注销后 RPC 服务不响应的问题;
2.6.2(2024/05/29)
New 🌟
JSON报告功能优化run模式下:/report/json/detail_report.json包含每条py脚本的结果;/report/json/summarize.json根据detail_report.json计算的汇总数据;
remote模式下:- 收集远程测试机上所有的
/report/json/${timestr}_remote/detail_report_${IP}.json; - 收集远程测试机上所有的
/report/json/${timestr}_remote/summarize_${IP}.json; - 负载均衡驱动模式下自动汇总
summarize数据:/report/json/${timestr}_remote/summarize.json;
remote模式新增参数:git_url、git_user、git_password、branch、depth用以控制拉取git仓库代码;由于 letmego 方案使用场景较少,默认环境中移除此模块,子项目需要时通过新增依赖机制进行安装;
支持将测试结果回传给测试平台;
文档更新:实践/HTTP接口自动化测试/创建一条完整的用例。@003307
YouQu插件pdocr-rpc更新:支持Windows和MacOS,图片入参支持多种图片格式,并兼容不带文件后缀名入参方式。@CCrazyPeter
Fix 🐛
- 修复测试单驱动执行报错的问题;
YouQu插件pdocr-rpc修复服务器系统获取显示协议错误的问题;
2.6.1(2024/05/21)
这个版本中,我们成功在欧拉社区开源 src-openeuler ,后续将以 patch 的方式持续在欧拉社区进行代码更新,希望欧拉系统上使用到 YouQu 的同学们能给我们反馈使用情况。
此外,重点对统计 commit 功能进行了优化和 Bug 修复,此功能目前还处于内部灰度阶段,未来有希望成为 YouQu 的另一个亮点,能自动分析统计每次提交中包含的用例和方法的增删改的数据,数据汇报者统计者的利器。
New 🌟
- 新增
skipif_not_xxx条件跳过逻辑;PR #68 by @DarkLii - 对生成的
JSON报告的路径、文件名称、报告内容进行了重新规划,将在下一个版本开发并发布;@mikigo - 文档更新:指南/框架必备/执行管理器,新增用例驱动方式章节,用以集中说明
YouQu支持的驱动方式。@mikigo YouQu插件image-center更新:支持Windows和MacOS,图片入参支持多种图片格式,并兼容不带文件后缀名入参方式。@CCrazyPeter
Fix 🐛
修复统计
commit数据中修复方法数量错误的问题;@mikigo修改
JSON报告计算逻辑:@mikigo用例总数 = 通过数 + 失败数 (剔除跳过数)
失败数:剔除跳过数
跳过数:跳过用例数
通过率 = 通过数 / 用例总数
修复
env.sh提示找不到youqu-shell-rm的问题,将删除虚拟环境的命令修改为:youqu-rm;@mikigo修复统计
commit功能enddate报错的问题;@mikigo
2.6.0(2024/05/14)
近期,YouQu 自动化测试框架迎来了一系列令人振奋的更新,这些更新不仅提升了框架的性能和稳定性,也拓展了其功能和适用范围。通过引入 OCR 服务集群化部署和模型 v4,我们显著提高了文本识别的准确性和效率。新增的链式调用函数接口使操作更加直观和便捷。
在功能创新方面,我们推出了 Web UI 自动化测试功能和远程交互式控制功能,为自动化测试提供了更加丰富和灵活的手段。同时,我们还增强了报告的功能,新增了生成的 json 结果以 py 维度统计,为测试数据的分析和解读提供了更多维度。
平台兼容适配性方面,我们对 openEuler 系统完成了适配,为后续开源到 openEuler 社区做好准备。
在问题修复方面,我们针对用户反馈的多个问题进行了积极的调查和解决,包括报告生成时的错误处理、远程调用的稳定性和兼容性等问题,这些修复进一步提升了用户体验,确保了框架的稳定性和可靠性。
总的来说,这一系列的更新标志着 YouQu 自动化测试框架在便捷性和稳定性方面迈出了重要的一步,我们坚信这些更新将极大地提升开发者和测试人员的效率,推动自动化测试技术向前发展。
New 🌟
OCR服务性能优化,使用 OCR 服务集群化部署,框架自动做负载均衡,同时启用OCR识别模型v4,进一步提高识别稳定性和准确性。@mikigoYouQu OCR 新增支持链式调用函数接口,使用更方便更符合语义,原函数接口使用方法不变以保持兼容性。@mikigo
pythonfrom src import OCR # 新的函数接口ocrx,支持链式调用 OCR.ocrx("确定").click() OCR.ocrx("确定").center() # 原函数接口ocr,返回坐标 OCR.ocr("确定")完成
openEuler系统适配。@mikigo
Fix 🐛
- 修复
json报告失败数量没有剔除跳过数量的问题。@mikigo - 修复内网文档不能加载
favicon的问题。@mikigo - 修复远程调用时,调用函数同时传入可变参数和默认参数,远端无法解析默认参数的问题。@mikigo
2.5.5(2024/05/10)
New 🌟
- 文档新增
指南/框架必备/Ruff代码检查章节;@mikigo
Fix 🐛
2.5.4(2024/05/08)
New 🌟
- 将项目根目录下
_env_base.sh移动到setting目录下,简化项目根目录下文件目录结构;@mikigo - 将项目根目录下
pylint.sh移动到src/utils目录下,YouQu 目前已经启用了更先进的 Ruff,Pylint 后续默认不再使用,但考虑到有些同学仍然有使用 Pylint 的需求,因此暂留。@mikigo - 添加
CODE_OF_CONDUCT.md。@mikigo - 在线文档增加团队页。@mikigo
- 报告增加
PMS用例维度统计数据;@mikigo - 将生成的
json用例结果以py维度统计;@mikigo - 整合
env.sh和env_dev.sh为一个脚本,通过选项来控制安装逻辑;@mikigo
Fix 🐛
- 修复远程调用返回
None报错的问题; - 修复无法连续多次调用对远程终端的键鼠操作;issues #64 Fix by @mikigo
2.5.3(2024/04/24)
New 🌟
YouQu 在线文档 3.0 版本上线,重新整理了章节结构和排版,界面UI也进行了优化调整。@mikigo
新增尝鲜版
Web UI自动化测试功能:@mikigo- 框架为
Web UI自动化测试提供一个Fixture对象:page,它默认使用系统自带的浏览器进行测试,如果需要指定其他第三方的浏览器,提供配置项可以指定浏览器对应的路径。 - 还提供一个
Fixture对象:native_page,它使用playwright最新的chromium浏览器进行测试。 - 重写了
Playwright的断言语句,以保持统一的断言语句风格。
- 框架为
新增远程控制功能,在用例步骤中操作远程机器,且远程操作方法实现了编辑器代码补全。@mikigo
新增命令行入参或配置文件传入远程机器的
user、ip、password信息,用例中通过框架提供的Fixture对象:slaves获取数据,供用例层使用。@mikigo分辨率检查功能支持多组分辨率;@mikigo
env_dev.sh初步适配欧拉系统;@mikigo
Fix 🐛
修复远程调用报错后,本地再次调用报属性找不到的问题; @mikigo
修复使用远程执行命令时,返回值为
None; @mikigo修复实例化远程类时,传入
transfer_appname="xxx"参数后,远程路径错误的问题; @mikigo修复从 PMS 同步标签到 CSV 文件用例列表不完整的问题;@mikigo
2.5.2(2024/03/27)
New 🌟
Fix 🐛
- 修复统计用例和方法数量功能在子项目为
gitlab时,无法获取到commit详细记录的问题;@mikigo - 修复基于
Python标准库difflib做commit文件对比时,输出原始数据错误的问题;@mikigo - 修复域管环境下,写日志文件报权限不够的问题;@mikigo
2.5.1(2024/03/14)
New 🌟
startapp初始化应用新增 2 条示例用例和一个方法;issues #46 by @mikigo- 新增子命令
youqu manage.py git可用于拉取git仓库代码到apps目录下,支持统计分析仓库新增修复的用例或方法数量;issues #40 by @mikigo - 更新贡献者名单;
Fix 🐛
- 修复
env.sh中 Python 虚拟环境的解释器版本没有动态获取系统中的 Python 版本的问题;PR #51 by @saifeiLee - 修复
wayland环境下XAUTHORITY环境变量缺失问题;PR #55 by @DarkLii assert_ocr_exist新增any匹配模式,即任意一个匹配成功则通过;PR #55 by @DarkLii
2.5.0(2024/03/04)
New 🌟
startapp初始化工程新增.gitignore文件;issues #43 by @mikigo
Fix 🐛
- 修复
startapp初始化工程中的错误;@mikigo - 修复
skip用例在收集阶段报错;issues #44 by @mikigo
2.4.6(2024/02/26)
New 🌟
- 计算收集用例数量剔除
skip和skipif的用例数量;@mikigo - 报告新增显示当前目录;@mikigo
- 启用
Ruff代码检查;issues #38 by @mikigo - 新增定制依赖功能支持应用库定义
deb形式Python包;issues #37 by @mikigo
Fix 🐛
2.4.5(2024/01/20)
Fix 🐛
- 修复 1070 华为机型 Wayland 下报错:
Xlib.error.DisplayConnectionError;@mikigo - 增加
CSV多条件跳过用例功能,多个以&&符号隔开即可;感谢 @有志
2.4.4(2024/01/19)
New 🌟
- 切换
YouQu的正式域名为:youqu.uniontech.com;@mikigo - 重新构建了文档 UI 布局,对多个文档模块及文档内容进行了修改、调整、优化,增加了留言模块;@mikigo
- 1070 窗管获取窗口信息的接口
GetAllWindowStatesList换了调用逻辑,YouQu 适配最新的接口;感谢 @泽铭
2.4.2(2023/12/27)
New 🌟
- 将
IMAGE_RATE默认值设置为0.8;经过和业务专家多轮次讨论和反复验证观察,我们认为取0.8是一个相对平衡识别准确性和用例稳定性的值;@mikigo
2.4.1(2023/12/26)
New 🌟
dagtail新增center方法;@mikigo
Fix 🐛
- 修复
AssertCommon.assert_image_exist参数rate主动传入,没有用到全局配置IMAGE_RATE;@mikigo
2.4.0(2023/12/22)
New 🌟
UOS 1070Wayland下窗管团队提供了新的接口(GetAllWindowStatesList)用于获取桌面所有窗口的信息,YouQu进行开发适配并兼容新老接口,至此基于UI的元素定位方案在Wayland下表现和X11下表现一致,堪称完美;issues #21新增贡献者名单及贡献规则文档;issues #23
Fix 🐛
- 修复
Wayland下sniff命令报错~/.Xauthorty文件不存在;issues #22 - 修复远程执行数据回填过程中报
HTTPError;issues #24 - 修复偶现测试报告生成阶段报错;issues #25
- 修复
globalconfig.ini配置文件中IMAGE_RATE配置项不生效;issues #26
2.3.7(2023/12/15)
New 🌟
src/__init__.py里面的导入全部设置别名,以便后续各组件重命名之后仍能保持接口一致性和兼容性;@mikigo- 将
Wayland下输入的方法区分中英文,中文按现有input_message处理,英文数字字符等使用press_key处理; issues #17 - 有些镜像没有
$HOME/.Xauthority文件(咱也不知道为啥),YouQu执行会报错,我们只能创建一个空的同名文件,以确保程序能正常运行,但Xlib.xauth获取不到有效信息会有一些warning日志,看着烦人我都能接受,不能接受的是经常会导致大家在分析用例失败原因的时候将矛头指向它,然后每次我就需要解释这个warning提示不是问题,因此在底层将这部分日志输出屏蔽掉;@mikigo
Fix 🐛
2.3.6(2023/12/13)
New 🌟
标签化管理支持判断系统版本跳过用例,用
/etc/os-version里面的MinorVersion字段作为判断依据,在setting/skipif.py插件中实现了此功能,后续在CSV文件中可以使用此方法进行条件跳过;issues #16python--8<-- "setting/skipif.py:59:68"
Fix 🐛
- 修复
Wayland下系统监视器使用WaylandWindowInfo.window_info(),获取的窗口名称为空;issues #18 - 解除
env.sh中某个deb包安装失败后替换源retry机制,因为用固定的源替换之后,容易出现某些包安装失败,而不容易关注到首次包安装失败的问题,给定位环境安装失败带来困难;issues #19 - 修复
env.sh里面报错ERROR: unknown command "cache" - maybe you meant "check";@mikigo - 修复用例收集数量为
0时,报错ci_result.json文件找不到;issues #20
2.3.5(2023/12/04)
Fix 🐛
- 修复在低版本系统上安装的
libkf5wayland-dev版本问题;上个版本此问题没有完全修复,本次彻底解决;感谢 @玉婷;
2.3.4(2023/12/04)
New 🌟
- 用例执行过程中输出执行进度百分比;@mikigo
Fix 🐛
env.sh增加清理pip缓存;@mikigo- 修复在低版本系统上安装的
libkf5wayland-dev版本过高与libkf5waylandclient5版本不匹配,根据获取libkf5waylandclient5版本指定libkf5wayland-dev版;感谢 @玉婷;
2.3.3(2023/11/22)
Fix 🐛
- 使用
Xdotool检索窗口 ID 时,如果有多个窗口,则输出以\n结尾。在原始代码中,使用split("\n")直接拆分字符串可能会导致结果列表的最后一个元素为空字符串。在迭代窗口 ID 并将其转换为int类型时,这种情况会导致错误。感谢 @有志 - 图像识别(
image-center)发布了新版本2023.11.22@有志,OCR(pdocr-rpc)发布了新版本2023.11.17,增加了识别的总耗时、每次识别间隔时间;@mikigo
2.3.2(2023/11/14)
New 🌟
- 由于
PMS用例管理系统存在缺陷,框架移除从CSV反向同步标签到PMS功能;@mikigo
Fix 🐛
- 优化数据回填逻辑,修复同一个用例
py包含多个用例,数据回填时,中间的失败结果被后续用例更新为成功的问题;@mikigo - 修复某些机型下(
华为W525)失败录屏进程阻塞的问题,是由于特殊机型下FFmpeg的 Bug 导致,但FFmpeg修复更新太耗时,框架先做异常处理;@mikigo
2.3.1(2023/11/08)
New 🌟
- 集成
ydotool键鼠控制方案,解决注销登录界面无法控制键鼠的问题;@mikigo
Fix 🐛
2.3.0(2023/10/27)
New 🌟
- 增加了
YouQu最新版本的检查,如果本地执行版本不是最新的,会打印更新提示信息;@mikigo public独立发布,基础框架移除此模块,在环境部署阶段进行public模块的初始化;@mikigo
Fix 🐛
- 修复
youqu命令无法接收带空格的参数的问题;感谢 @禄烨 ; OCR检测模型升级到V4之后,在识别某些文本情况下出现不能识别的问题,暂时先回滚到V3;@mikigo- 修复了不同的
case目录下py文件的名称一样,导出(manage.py csvctl -p2c)数据错误的问题;感谢 @有志;
2.2.4(2023/10/16)
New 🌟
OCR检测模型升级到V4,中英文场景检测模型准确率提升 4.9%,识别模型准确率提升 2%;@mikigo支持标签反向同步:将
csv中的标签同步到pms; @mikigo解除子项目的工程名称以
autotest_开头的限制,子项目工程名称可以为任意名称;@mikigo配置文件
globalconfig.ini中的APP_NAME和命令行参数-a/--app仅支持传入工程名称的全称:shellyouqu manage.py run -a apps/autotest_deepin_music # 或 youqu manage.py run -a autotest_deepin_music新增导入全局配置对象:@mikigo
pythonfrom setting import conf这种写法和之前的写法效果是一样的;
pythonfrom setting.globalconfig import GlobalConfig继续尝试将一些功能模块拆分为独立构件;@mikigo
增加了在线文档的显示宽度;@mikigo
增加执行前显示执行的Python文件数量;@mikigo
Fix 🐛
- 修复从
pms标签【设备类型】为null时,同步到csv文件写入为null;@mikigo - 修复无法导出
csv文件的问题;@mikigo - 修复了键盘
printscreen按钮无效的问题; @mikigo - 修复了
sniff命令报错无法找到src模块的问题;@mikigo - 修复
assert_ocr_not_exist传入多个识别目标逻辑判断错误的问题;@mikigo
2.2.3(2023/09/15)
New 🌟
- 尝试将一些功能模块拆分为独立构件;@mikigo
Fix 🐛
2.2.1(2023/09/13)
New 🌟
Fix 🐛
2.2.0(2023/09/05)
New 🌟
- 正式启用
letmego技术方案;@mikigo
Fix 🐛
2.1.5(2023/08/31)
New 🌟
将有趣的文档系统迁移到 @linuxdeepin ,剥离文档中的图片资源,采用
CDN网络加速方式加载;@mikigo尝试合入一个有趣的功能;
Fix 🐛
- 修复了
Wayland键鼠工具没有鼠标相对移动方法moveRel的问题; @mikigo - 修复了
Wayland下获取窗口信息功能模块中环境变量的问题;@mikigo - 优化了
startproject功能的一些信息输出;@mikigo - 修复了特殊场景下
env_dev.sh开发环境部署是可能影响到正式环境env.sh的问题;@mikigo
2.1.2(2023/08/22)
New 🌟
- 增加
OCR识别自动重试机制,默认重试 2 次,支持动态传入重试次数;@mikigo - 使用窗管最新提供的二进制接口,优化基于
UI的元素定位方案在Wayland下获取窗口信息的方法;感谢桌面测试部 @何权 @孙翠 、窗管研发 @泽铭 的大力支持。 - 扩充
skipif条件跳过的功能函数:@mikigoskipif_xdg_type支持x11或wayland上跳过;skipif_cpu_name支持不同cpu上跳过,比如:skipif_cpu_name-KLVVW5821;
2.1.0(2023/08/18)
Fix 🐛
修复 SW 架构环境依赖的问题,原因是之前我这里本地没有 SW 的机器,没有做相关适配;@mikigo
修复子项目单独需要三方包
pexpect,由于之前是预装到镜像里面的,但基础框架不需要,因此没有装载到虚拟环境里面,导致子项目依赖报错。@mikigo修复子项目 cv 导入报错的问题;@mikigo
原因为:youqu 的图像识别功能兼容两种情况,一种是面向服务,就是本地测试机不需要安装
OpenCV,用例中的图像识别会通过远程服务接口进行图像识别和结果获取;第二种是原生,就是本地直接安装OpenCV直接用。两个情况的优先级是优先判断本地存在,否则走服务。前面我们已经把 OCR 功能做了服务化,基于 1 年多以来的观察,用起来很稳定,再一个就是
OpenCV安装包是比较臃肿的,粗略数了下依赖有30+个,而且在各架构上依赖包还不尽相同,装载到虚拟环境方案中不太好处理,所以本次 2.0 版本我们大胆的将图像识别的默认功能修改为面向服务的方式,前期测试一切看起来都很和谐。但是没注意到之前给海燕姐那边项目单独定制做了个图像识别接口(为了能简单平滑的迁移到 youqu),此接口底层没有兼容服务化,所以她那边的项目调用此定制接口会报 cv 导入的问题。
由于将这个定制图像识别接口进行服务化兼容改造需要一定时间,改完还需要测试,但本次时间比较紧,因此先把
OpenCV装进虚拟环境,后续版本再考虑针对此接口做修改。
2.0.0(2023/08/16)
YouQu(自动化测试基础框架)开源了,同时推出了 2.0 版本。
感谢王波总、架构师徐小东、研发经理郑幼戈、刘郑等研发同事的大力支持。
New 🌟
1、新的基础框架代码获取方式及新的初始化工程命令
YouQu 后续均通过 PyPI 进行包的发布,也就是说后续可以使用 pip 进行安装:
sudo pip3 install youqu==2.0.0这里有 2 个小点要注意:
推荐使用
sudo pip3(加 sudo)进行安装;如果不加 sudo 有些机器可能
$HOME/.local/bin不在系统 PATH 环境目录下,在不添加环境变量的情况下,会出现YouQu的初始化工程命令(youqu-startproject)无法使用的问题;当然,将上述路径添加到环境变量之后也是可以用的,所以我这里是推荐加 sudo,不加 sudo 也是可以的,只是需要关注下环境变量的问题。
推荐指定版本号(
youqu==2.0.0)安装,如果不指定版本号默认是安装最新发布的 YouQu 版本,你可以在 PyPI 上的 Release history 里面查看有哪些版本。安装之后会自动生成一个系统命令 youqu-startproject,使用它可以初始化工程,这里以音乐举例;
shellyouqu-startproject autotest_deepin_music这样就会在当前目录下生成一个
autotest_deepin_music目录,里面包含了基础框架所有的代码;之后,还是在
apps目录下,放入子项目的AT代码即可,使用方法和过去一样,这里就不多介绍。另外,除了通过 pip 获取以外,仍然可以通过源码获取(直接 git clone)。
值得一提的是,使用 pip 安装
YouQu时,YouQu包的大小才600+k,安装速度起飞。
2、新的AT虚拟化环境部署方案
为了解决以下问题:
过去一段时间咱们经常出现的,不同的AT项目在同一台机器上部署环境时依赖版本冲突的问题,新方案不同的项目会动态生成自己的虚拟环境,相互之间不影响;
业内为了解决版本冲突问题一般都会使用
Python虚拟环境的工具,但是都有个问题,无法管理 deb 包形式发布的 Python 包,本次我们解决了这个问题,能够完全管理常规的Python包,也能管理到 deb 包形式发布的 Python 三方包;虚拟化环境部署使用方法:
shellbash env.sh可以看出来和原来使用方法没有变化,也就是说从使用的角度是完全没有区别的,只是内部做了不同的事情。
值得一提的是,本机部署的功能仍然保留
env_dev.sh,可以作为开发时的环境部署。
3、新的驱动命令
过去咱们都是使用这样的命令来驱动执行:
python3 manage.py run由于默认基于虚拟化环境部署方案,因此我们增加了一个系统命令 youqu;
新的驱动方式:
youqu manage.py run只需要把 python3 替换成 youqu 就可以了,看起来很和谐~
4、新的文档地址
过去咱们 YouQu 的在线文档是部署在公司内网的,现在开源到 github 了,外部开发者肯定访问不到内网的文档,因此需要将文档部署到公网【公网文档】;
公网文档使用的是 github pages(白嫖怪一顿狂喜~~),但可能会出现文档速度慢的问题(代理下就好了),不过没关系,咱们【内网文档】仍然保留,文档内容一样,访问速度更快。
5、其他一些小小功能更新:
(1)新增关闭分辨率检测的参数值;@mikigo
youqu manage.py run --resolution no或者修改 setting/globalconfig.ini 里面的配置:
;检查测试机分辨率, 比如:1920x1080
;no: 表示不做分辨率校验
RESOLUTION = 1920x1080resolution 这个参数一直都有的,只不过之前是用于指定分辨率大小,比如 --resolution 1920x1080,但有些接口的项目不需要这个检查,可以给它个 no 就好了,当然 CICD 上关闭,需要流水线上把这个参数加上;
(2)新增失败录屏从第几次失败开始录制视频的命令行参数;@mikigo
之前这个配置项只能在 setting/globalconfig.ini 里面的配置:
;失败录屏从第几次失败开始录制视频。
;比如 RECORD_FAILED_CASE = 1 ,表示用例第 1 次执行失败之后开始录屏,RERUN >= RECORD_FAILED_CASE。
;1.关闭录屏:RECORD_FAILED_CASE > RERUN
;2.每条用例都录屏:RECORD_FAILED_CASE = 0
RECORD_FAILED_CASE = 1现在将开发到命令行参数。
youqu manage.py run --record_failed_case 2Fix 🐛
- 修复
remote执行时,在某些情况下无法生成测试报告的问题;@mikigo
1.3.0(2023/07/10)
Fix 🐛
- 进一步优化了
env.sh安装Python的三方源;参考:配置Python源的几种方法 - 修复
wayland_autotool受安全管控的问题;@mikigo - 修复了
wayland下偶现找不到.Xauthority文件的问题; @mikigo
1.2.9(2023/06/26)
Fix 🐛
优化远程执行
remote的参数直接传给远程机器的run命令,不用再单独处理远程执行的参数逻辑,后续专注于本地执行功能开发,远程执行自动适用;@mikigoenv.sh移除pyyaml安装,由子项目在requirement.txt里面定义,框架自动加载;@mikigo优化了
env.sh安装Python的三方源;@mikigo
1.2.8(2023/06/09)
Fix 🐛
- 修复了
pypi安装numpy存在系统安全管控的问题;@mikigo
1.2.7(2023/06/08)
Fix 🐛
env.sh中安装Python包未指定版本时,日志输出安装的版本;@mikigoshellpdocr-rpc 2.0.1 allure-custom 1.2.1 funnylog 1.1.3修复
-f测试套件执行报错的的问题;@mikigo
1.2.6(2023/06/07)
Fix 🐛
- 修复
wayland上调用鼠标中键、右键不生效的问题;@mikigo - 修复
pubilic/dde_desktop_public_widget里面通过配置文件定位桌面文件的方法,坐标没有拆包的问题;@mikigo - 优化了等待的日志输出;@mikigo
pycreeze版本升级到0.1.29,导致与pyautogui0.9.53不兼容,env.sh里面增加指定pycreeze版本为0.1.28;@mikigo
1.2.5(2023/05/16)
New 🌟
--app参数后面新增支持autotest_xxx和apps/autotest_xxx两种写法,目前支持三种参数传入方式:
~$: youqu run -a deepin-music
~$: youqu run -a autotest_deepin_music
~$: youqu run -a apps/autotest_deepin_music 后两种入参方式可以很方便在输入命令的过程中使用补全。@mikigo
remote 远程执行新增从命令行传入测试机信息,远程机器的
user@ip:password,多个机器用'/'连接,如果password不传入,默认取setting/remote.ini中CLIENT_PASSWORD的值,比如:uos@10.8.13.xx:1或uos@10.8.13.xx;@mikigoshellpython3 manage.py remote -c uos@10.8.13.xx/uos@10.8.13.xx python3 manage.py remote -c uos@10.8.13.xx:1/uos@10.8.13.xx:2
Fix 🐛
- 日志模块修改为函数执行之前打印日志;@mikigo
- 日志模块增加白名单,通过类名开头,结束,包含等关键字控制需要打印的函数日志;@mikigo
- 远程执行时,如果传入了
app_name只会将apps目录下app_name的目录发送到测试机;@mikigo env.sh移除python3-dev;@mikigo- 修复
Wayland下env.sh环境安装失败的问题,优化了deb依赖安装的逻辑;@mikigo - 将
env.sh刷新源的日志在终端显示,解决在CI环境下,长时间不输出日志连接中断的问题;@mikigo - 修复
1060华为机型安装键鼠工具时依赖不兼容的问题;@mikigo
1.2.4(2023/02/27)
Fix 🐛
- 修改
CURRENT文件;@mikigo
1.2.3(2023/02/27)
New 🌟
pylint.sh支持通过位置参数传入文件路径:bash pylint.sh apps/autotest_deepin_music,好处是参数路径可以在终端补全;@mikigo- 新增系统命令
youqu-pylint,用于静态代码扫描,使用方法:youqu-pylint apps/autotest_deepin_music;@mikigo - 由于系统一些
dbus接口改变,公共库中的dbus方法将不再维护,由子项目在other_widget.py里面进行维护;@mikigo
Fix 🐛
- 修复
ssh环境下运行提示 “无法连接” 的问题;@mikigo - 修复运行时程序退出,不输出异常日志的问题;@mikigo
- 修复
youqu remote xxx远程执行时,在服务端Ctrl + C无法停止程序运行的问题;@mikigo
1.2.2(2023/02/08)
New 🌟
- 新增气泡类图像识别方案;
image_utils.py::ImageUtil::get_during;@mikigo - 图像识别新增指定区域识别,传入
[x, y, w, h],x: 左上角横坐标;y: 左上角纵坐标;w: 宽度;h: 高度;根据匹配度返回坐标;@mikigo - 图像识别新增指定目标图片,传入目标图片路径;@mikigo
env.sh移除pypinyin;@mikigo- 优化执行
env.sh时的日志输出;@mikigo manage.py移除了参数session_timeout,框架根据全局的timeout以及用例自定义的timeout自动计算出sessiontimeout的值;@mikigo- 新增 ocr 服务器链接重试,默认重试1次,支持动态传入参数;@mikigo
Fix 🐛
1.2.1(2023/01/06)
New 🌟
支持使用系统命令
youqu执行用例;可将python3 manage.py替换为youqu:shellyouqu run -a deepin-music -k 001RPC服务IP地址修改为域名:http://youqu.uniontech.com,指定不同的端口;@mikigo在线文档地址修改为域名:http://youqu.uniontech.com,原来的地址 10.8.10.215 将不在使用;@mikigo
Fix 🐛
- 修复
--count参数可能出现与其他框架的工程依赖存在冲突,报错重复注册的问题;@mikigo - 修复 CI 环境下多个工程存在 Python 环境变量指向错误,导包报错的问题;@mikigo
- 修复单独运行方法时无日志输出的 Bug;@mikigo
1.2.0(2022/12/30)
1.1.4 版本适配持续集成流水线且新增了较多新特性,我们计划使用 1.1.4 版本运行一段时间,1.2.0 版本将修复期间出现的 Bug,然后作为稳定版本发布。
New 🌟
Fix 🐛
- 修复 startapp 创建工程时存在工程名称时无法继续创建;@mikigo
- 修复了 OCR 服务在并发时可能出现无法返回结果的问题,提升 OCR 服务高并发稳定性;@mikigo
- 修复 PMS 同步标签到 CSV 文件不支持用例库的问题;@mikigo
1.1.4(2022/12/14)
New 🌟
新增
startapp子命令创建子项目工程模板:python3 manage.py startapp autotest_deepin_xxx;@mikigo新增指定用例重复执行次数;@mikigo
去掉批量执行前收集用例的步骤;@mikigo
增加开始执行时打印一些执行参数,如:
shell用例收集数量: 99 失败重跑次数: 1 最大失败次数: 49 用例超时时间: 200.0s (03分20秒) 会话超时时间: 11880s (3小时18分0秒)定制修改allure报告logo、title、默认语言;@mikigo
manage.py执行开始时打印 logo 和当前版本:@mikigoshell██╗ ██╗ ██████╗ ██╗ ██╗ ██████╗ ██╗ ██╗ ╚██╗ ██╔╝ ██╔═══██╗ ██║ ██║ ██╔═══██╗ ██║ ██║ ╚████╔╝ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ╚██╔╝ ██║ ██║ ██║ ██║ ██║▄▄ ██║ ██║ ██║ ██║ ╚██████╔╝ ╚██████╔╝ ╚██████╔╝ ╚██████╔╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══▀▀═╝ ╚═════╝ ▄█ ▄█ █ █ █ ▄ █ ▄ ▀▀█新增指定用例执行次数;@mikigo
装饰器方法指定次数;
python@pytest.mark.count(2) def test_music_679537(): pass命令行参数指定次数;
shellpython3 manage.py run -a deepin-music -k 001 --count 2
image_utils 增加函数 save_temporary_picture,支持指定屏幕区域截图并返回图片存放的本地路径,后续使用 assert_image_exist 进行断言;@mikigo
- Python
def test_music_679537(self): pic_path = DeepinMusicWidget.save_temporary_picture(x, y, width, height) ...... # 中间操作 self.assert_image_exit(pic_path)
button_center 新增 btn_size 获取控件左上角坐标及长宽,用于动态的截取元素的图片,可用于定位断言;@mikigo
- python
def test_music_679537(self): pic_path = DeepinMusicWidget.save_temporary_picture(*DeepinMusicWidget().ui.btn_size("所有音乐按钮")) ...... # 中间操作 self.assert_image_exit(pic_path)
allure 报告中定位问题除了日志、截图、录屏外,调用的函数增加了 step 步骤展示;@mikigo
env.sh新增安装子项目Python三方依赖,在子项目根目录下写requirement.txt文件,env.sh会自动加载;@mikigoocr 识别新增支持传入目标图片路径进行文字识别,减少因全屏识别时,其他文字的干扰;@mikigo
- Python
# 断言音乐的删除弹窗中,包含了“确认”的文字 self.assert_ocr_exist("确认", picture_abspath=DeepinMusicWidget.save_temporary_picture(*DeepinMusicWidget().ui.btn_size("删除弹窗")))
断言函数的调用也会自动打印日志;@mikigo
env.sh新增裁剪依赖的方案;@mikigo
Fix 🐛
- 修复
Jenkins环境下,apps目录下子项目存在auotest_deepin_xxx@tmp目录,在传入app_name后无法执行用例的问题;@mikigo - 修复自动生成
case_list.csv文件时,用例顺序被调整的问题;@mikigo env.sh环境安装移除 git 和 curl;@mikigo- 修复用例在 setup 阶段报错后,未写入 ci_result.json 的问题;@mikigo
- 移除
uos_ci.py;@mikigo
1.1.3(2022/10/28)
New 🌟
- 新增图像断言成功输出匹配度;@mikigo
- 新增环境安装 yaml 依赖;@mikigo
- 新增测试套执行、数据回填兼容用例库ID和产品库ID;@mikigo
- 新增测试结果表情显示,并优化了日志的排版;@mikigo
- 新增
--top {number}用于记录系统资源占用情况,日志生成到report/logs/top.log;@mikigo
Fix 🐛
- 修复用例收集阶段报错,但终端没有错误日志输出的问题;@mikigo
- 修改失败用例回溯日志为详细级别;@mikigo
- 修复了执行进度未计算跳过用例的问题,并优化了进度获取的算法;@mikigo
- 修复
env.sh在 V23 环境下安装无法读取密码的问题;@mikigo - 修复了 pms 测试套执行或测试单执行时,用例ID兼容用例库ID和产品库ID;@mikigo
- env.sh 里面 hub.deepin.com 更换成 it.uniontech.com;@mikigo
- uos_ci.py 测试结果统计时,总数剔除 skip 的数量;@mikigo
1.1.2(2022/09/21)
New 🌟
- 在没有安装
dogtail的情况下,也能使用sniff工具;@mikigo
Fix 🐛
- 修复持续集成流水线中没有安装 AT 环境执行
uos_ci.py报错的问题;@mikigo
1.1.1(2022/09/19)
New 🌟
- 新增执行进度显示,每条用例执行时日志输出当前进度:[当前指定第几条/用例总数];@mikigo
- 新增终端输出用例执行结束之后所有失败用例的列表;@mikigo
- 关闭终端输出捕获用例执行过程日志快照;@mikigo
- 优化终端输出失败信息冗长为简要信息输出;@mikigo
- 新增终端输出显示 10 个执行最慢的用例列表,并详细列出各个阶段的耗时;@mikigo
- 失败重跑用例重跑之前延迟 1 秒;@mikigo
- 新增收集阶段报错,仍然强制执行;@mikigo
- 用例收集时仅在
apps目录下进行,忽略src,setting,public目录;@mikigo - 新增
allure报告备份功能,默认备份至allure_back目录下;@mikigo manage.py新增参数--lastfailed用于只跑上次失败用例的功能;@mikigo
Fix 🐛
1.1.0(2022/09/16)
New 🌟
- 新增PMS数据回填功能,支持多种数据回填模式;@mikigo
- 优化了通过测试套件执行时PMS 爬虫的性能;@mikigo
- 新增
.gitmodules文件,用于标记所有子项目,方便统一拉取代码;@mikigo env.sh适配社区版上安装自动化环境;@mikigo- 增加执行过程中立即显示错误的功能;@mikigo
README.md增加Wayland下使用、测试报告查看、常见问题等的文档说明;@mikigo- 增加了用例执行过程中对
setup、call、teardown进行日志分段;@mikigo
Fix 🐛
- 修复了
确认修复列没写表头,但写了Fix 🐛ed-xxx标签,出现的程序报错问题;@mikigo - 修复了同一应用内多个
csv文件中确认修复列有的写了,有的没写,可能出现的程序报错的问题;@mikigo - 修复了
INFO日志,显示为DEBUG的问题;修复了部分机器上INFO日志内容显示为红色的问题;@mikigo - 修复了用例收集阶段报错看不到详细信息的问题;@mikigo
1.0.2(2022/08/22)
New 🌟
Fix 🐛
1.0.1(2022/08/12)
New 🌟
新增
RELEASE.md文件,用于记录历史发布版本的更新内容;@mikigo兼容
Wayland模式下执行用例,上层用例不用管当前测试机执行环境,框架会自动根据当前环境走不同的代码逻辑;@mikigo由于需要修改
dogtail源代码,因此将修改后的源码放入到核心库里面src/depends/dogtail后续版本将不需要在系统中安装dogtail;@mikigo如果应用库同样使用了系统安装的
dogtail可能会报错,解决方案是将代码中的import dogtail修改为from src.depends import dogtail;@mikigo
Fix 🐛
- 重跑失败之后才会关闭文件选择框,修改为失败之后会关闭文件选择框;@mikigo