qt 分辨率问题 安卓_解决问题而不产生更多的问题

dd2dadd788ab1eb6dd4f456c7b011458.png

我,一个工具人,平时用Python写写工具。

这次项目的对象是一款Windows平台的桌面应用,一个服务端对多个客户端,win32写的一个壳子套着CEF。客户需求是稳定性测试[1],希望能够实现由服务端自动发起业务流程,各个客户端模仿用户行为进行操作,重复执行多次,暴露稳定性问题。业务流程具有以下两个特点:1. 各个业务操作具有一定的时间约束;2. 整个业务流程的时长一般不超过3-4小时。另外的约束条件是,需要适配多种Windows版本,且测试平台的性能配置较为一般,甚至有勉强能开机的优秀选手。


既然需要模拟用户操作,那么UI交互就是基础,Microsoft的API就是首选:翻出基于UIAutomationCore.dll的国内开源库操作一番!

UI 自动化概述​docs.microsoft.com
017e5c5cbdc9bf5186a60eb988ce466f.png
yinkaisheng/Python-UIAutomation-for-Windows: (Donot use 3.7.6,3.8.1) Python 3 wrapper of Microsoft UIAutomation. Support UIAutomation for MFC, WindowsForm, WPF, Modern UI(Metro UI), Qt, IE, Firefox, Chrome ... (github.com)​github.com

考虑到测试平台拉胯的配置,精简了yinkaisheng大佬的封装,只保留元素查找和属性读取的简单功能,顺手开发了一个mini版UIelementLocateTools,只使用了comtypes唯一一个第三方库,稍后可以打包成exe,免去了安装环境和诸多第三方依赖的步骤[2]

好的,让我们先从服务端应用开始!

Win10的本子成功拿到了各位控件的家庭住址,能够按照需求完成控件交互,实现状态监测与流程触发,但是测试平台的win7台式机却无动于衷,看来排查出问题所在才能以不变应万变,未来才能兼顾win7其他诸多版本与可能的xp,OK,我们开始!

慢,或许有其他方法。

我们来试一试图像识别好了,可以避开系统差异,只需要解决多分辨率适配问题就好,OK,那我们开始!

Welcome to Airtest documentation!​airtest.readthedocs.io

网易家的Airtest可以自适应多种分辨率,但是IDE总是感觉有点少了那么点意思,而且该项目的诸多约束否定了直接使用该IDE的可能性,决定装个库瞄一眼API的具体实现。

958fd8a7e859376d1eb3c8298cce0b49.png

airtest.core.api模块里的find_all函数,实际调用了Template对象的match_all_in方法,可以看到这里是根据识别对象图片与识别背景图片的分辨率,使用算法做了一次尺寸调整,当然其他地方还有诸多配合的图像与算法处理。

但有个问题,测试平台的优秀机器们怕是经不起这么大个宝贝的折腾,而且一时半会也没法从airtest里拆出咱们想要的零部件,直接打包更是可怕的巨大体积,或者直接使用pyscreeze,自己实现尺寸缩放来完成自适应的需求,OK,我们开始!

慢,或许有其他方法。

该Windows平台的桌面应用使用了CEF(chromium嵌入式框架)实现前端界面渲染,先试试F12,果然能够开启调试工具。结合之前看到的大佬的文章,应当可以使用Chrome remote debugging protocol来定位元素与交互。在这之前,咱们先试试访问本地启动的后台服务,要做的只是需要猜中本地应用启动的端口号就好,OK,我们开始!

e87cba100758f70084fbc80aca100342.png

做到这里,突然意识到了什么不得了的事情!

希望能够实现由服务端自动发起业务流程,各个客户端模仿用户行为进行操作,重复执行多次,暴露稳定性问题


之后,找客户开了个会,确定了稳定性问题的工作重点实际上更希望放在客户端之上,并且能够接受服务端以接口的方式发起业务流程。另外作为稳定性测试,又向客户推荐了客户端窗体范围内的Monkey操作,来代替更为常规和单纯的用户行为模仿,也更能够暴露问题。


至此,最初的双端UI测试开发需求转变为了一方接口调用,一方UI随机Monkey。

更精准的需求,才有更合适的方案,正式开工!

参考

  1. ^稳定性问题:稳定性测试是一个专项测试的范畴,相关实践会在后面的文章中详细介绍
  2. ^相关工具待时机成熟之后会开源放出,大家一起来找茬
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值