首页 > 其他分享 >聊聊ui自动化用例的尺度

聊聊ui自动化用例的尺度

时间:2023-04-04 16:55:36浏览次数:56  
标签:容忍 弹框 问题 用例 ui 聊聊 自动化

聊聊ui自动化用例的尺度

自动化用例的尺度到底怎么拿捏,每个测试团队或者每个人都有自己的想法和方法论,今天看到一篇文章以处理弹框为例比较详细的讨论了这个问题,觉得跟我的思路很接近,这里拿出来分享一下。原文地址:https://responsibleautomation.wordpress.com/2023/01/31/should-test-automation-just-handle-it/

在文章里作者列举了几个场景

  • 有时我们收到这个弹出窗口,所以我们检查一下它是否在那里。如果有,我们就点击 "取消",然后继续。
  • 有时我们得到一个网页,上面写着 "系统不可用",所以我们就点击F5,然后继续,因为这只发生在QA环境中。
  • 有时,应用程序让我们在支付过程中二次登录。

碰到这些情况,自动化脚本应该如何处理?

从技术上讲我们始终是可以用代码处理这些情况的,不过核心的问题是,遇到这些突发情况,我们是要断言用例成功与否,还是写代码去pass这些细枝末节?有时候这类问题确实很困扰。

作者把这些问题分为两类

  • 对业务没影响的,可以容忍的问题
  • 不可容忍的问题

可容忍的问题

作者举了个例子,他们的ios app在进入的时候会弹框,要求用户授权定位和通知权限。遇到这种情况,脚本是直接点掉还是返回错误呢?作者表示他们也不能做决定,最后通过跟客户讨论,客户认为这种问题可以忽略,所以他们最终的策略是点掉,继续后面的流程,这就是可容忍问题的例子。

不可容忍的问题

还是上面那个app,一些情况下用户没有配置签名会弹出提示框,要求提供签名后继续,这种问题直接影响到了业务流程,就是不可容忍的问题,在这种情况下进行断言会比较好,因为没有签名后面的业务流程都走不通了,应该当做一个异常用例来进行专门的测试。

总结

作者给的例子都是弹框的,确实很少见到有人专门写东西来讨论弹窗的处理,简而言之一些弹框跟业务无关,那么就直接点掉或者不让它弹。比如之前我在写wordpress用例的时候,打开编辑器后总会出现全屏的用户引导教程,页面上所有文本框都没办法进行输入,我这时候认为新手教程不影响业务的核心流程,所以用了一些js代码直接让引导教程没办法弹出来。另一方面,如果出现的弹框是与业务强相关,那么弹与不弹就是两个用例,分别进行测试就好。

另外除了弹框,还有一些处理也可以分类来探讨。比如测试环境下超时时间调长一点,加载不出来就刷新一下,这种问题再测试环境是可以容忍的,不影响主业务和流程。

标签:容忍,弹框,问题,用例,ui,聊聊,自动化
From: https://www.cnblogs.com/nbkhic/p/17286980.html

相关文章

  • uinapp
    第一章、uni.request封装第一步创建一个文件夹let$request=(url,data,method='GET')=>{ returnnewPromise((resolve,reject)=>{ uni.request({ url:'http://119.45.221.185:4002/'+url, data, method, success:({data})=>{resolve(dat......
  • 搭一下 Stable Diffusion WebUI
    Preface前不久看到好多朋友用上StableDiffusion来做原画,然后又配合上了Chatgpt。一直以来都想尝试一下,奈何2014款的双核mac跑个idea都发出了拖拉机的轰鸣声。所以一直都是看一半就搁置。然而,这也耐不住心情低落想要一些东西来分散自己的注意力,今天我就和他杠上了。硬件Mac......
  • Element-ui使用过程中遇到的问题
    1.修改表单中的数据,列表行数据对应的同步修改原因:this.model=record;行为属于浅拷贝,直接修改,会修改指针地址中的内容;解决方法:(1)使用JSON转换:this.model=JSON.parse(JSON.stringtify(record));(2)使用Object.assign:this.model=Object.assign({},record);......
  • UI跳转WE DYNPRO带参数
    同事今天在做一个需求,需要把UI上的业务角色,传递给挂在UI上的DYNPRO程序。然后我们就研究了一下,发现挺好玩的。1,设置URL参数2.定义URL的参数3.找到链接对应的类,把参数传上4.WEBDYNPRO里把参数设置到application上5.然后在默认的windows里加入入参,获取参数 ......
  • golang CVE-2016-2183漏洞,https需要添加tls设置加密算法CipherSuites白名单,将弱加密算
    golangCVE-2016-2183漏洞,https需要添加tls设置加密算法白名单,将弱加密算法DES和3DES去掉。服务端样例代码packagemainimport("crypto/tls""fmt""net/http")funchandler(writerhttp.ResponseWriter,request*http.Request){fmt.Fprintf(wri......
  • ERROR: Could not find a version that satisfies the requirement pymysql (from ver
    踩过的坑不管是idea中直接引入还是 pip3installpymysql都会报错:ERROR:Couldnotfindaversionthatsatisfiestherequirementpymysql(fromversions:none)  原因是网络问题,需要需要使用国内镜像源来加速,比如豆瓣源pipinstallpymysql-ihttp://pypi.douba......
  • 老代码考古,seajs为什么能够和CMD一样同步模式的方式使用require()方法
    我们知道在服务端的node可以同步block的方式加载别的js库文件,在服务端使用会block的require()函数来加载,就是所谓的CMD、CommonJS规范。而在浏览器端里的js则因为网络延迟等各种因素,不能使用同步block方式加载js库,而是异步回调callback加载的方式,也就是所谓的AMD模块规范。那么......
  • RK3588开发板Buildroot 系统功能测试U盘测试一
    当插入U盘以后,U盘的格式必须为FAT32格式,大小在32G以下(底板上4个USB接口都可以插入U盘),如下图所示。方法一:1将U盘(U盘的格式必须为FAT32格式,大小在32G以下)插到开发板的usb接口,串口打印信息如下所示,U盘的设备节点是/dev/sda1。U盘的设备节点不是固定的,根据实......
  • Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
    网上一堆说的,启动类的加@MapperScan,mybatis指定mapper路径,甚至说实体类与数据库连不上等等。都不行,后来比对下与另一个能正常启动的pom文件比对,发现是依赖没加入,包括connector依赖都没有。综上,思路是未连接数据库的原因。......
  • 基于Label studio实现UIE信息抽取智能标注方案,提升标注效率!
    基于Labelstudio实现UIE信息抽取智能标注方案,提升标注效率!项目链接见文末人工标注的缺点主要有以下几点:产能低:人工标注需要大量的人力物力投入,且标注速度慢,产能低,无法满足大规模标注的需求。受限条件多:人工标注受到人力、物力、时间等条件的限制,无法适应所有的标注场景,尤......