自动化测试中如何兼容多版本UI——模糊匹配

  1. 很多人说基于UI的自动化就是一个大坑,有时写自动化测试脚本而投入的工时可能比人工测试还多,尤其是软件版本多,迭代快的,脚本的维护工作尤其繁琐。所以在设计脚本的时候就要考虑到兼容性,不能因为弹个窗口你就挂了,或者开发改了一个字母,你就不匹配了,又要改脚本。

    当然,兼容性太强了,也可能把bug给放过了,还是把握住用例的检查点,确实的抓住这个点验证功能,而其他情况忽略。只做功能点检查,是比较适合UI自动化的。模糊匹配,主要是在做UI搜索时,不使用精确的equals,而是用match。
    举个例子:(Android,UiAutomator)
    在搜索一个字符串的时候,忽略大小写。 java正则表达式: (?i)abc 表示abc都忽略大小写 a(?i)bc 表示bc忽略大小写 a((?i)b)c
    表示只有b忽略大小写device.findObject(By.text(Pattern.compile(“(?i)ok”)));
    这就避免了开发三天两头抽风改字串,一会Ok,一会OK,一会ok;
    这只是个简单的例子,但是我发现使用正则表达式,可以让脚本能兼容更多版本,环境,同时代码看起来也更加简洁,不用搞一堆的if else。
    这种模糊匹配,也更符合人的思维,比如app crash弹窗下一个close按钮,有可能几种文本,“close the app”“close current
    app”“Close”。。。什么乱七八糟的都有。人看到这些其实第一反应也不会去读完整个文本,就看到close就点了呗。那脚本也不能太傻啊,只要包含close这几个字母就可以了,
    那就是device.findObject(By.text(Pattern.compile(“.*(?i)close.*”)));
    到现在才发现了枯燥的正则表达式原来那么好玩。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值