UI自动化测试

单元自动化测试(数据处理层):指对软件中最小的可测试单元进行检查和验证,一般需要借助单元测试框架,如java的Junit、TestNG,python的unittest,常见的手段是code review等;



接口自动化测试(业务逻辑层):主要检查验证模块间的调用返回以及不同系统、服务间的数据交换,常见的接口测试工具有postman、jmeter、loadrunner等;



UI自动化测试(GUI界面层):UI层是用户使用产品的入口,所有功能通过这一层提供给用户,测试工作大多集中在这一层,常见的测试工具有UFT、Robot Framework、Selenium、Appium等;



性价比:按照测试金字塔模型以及投入/产出比,越向下,回报率越高;



常见的自动化测试工具简介



UFT(Unified Functional Testing)



即原来的QTP(Quick Test Professional Software)与ST(Service Test)合并而来,由HP公司开发,是一个企业级的商业自动化测试工具,提供了强大易用的录制回放功能,



同时兼容对象识别模式与图像识别模式,支持B/S和C/S两种架构的软件测试;



Robot Framework



一款基于python语言编写的自动化测试框架工具,具备良好的扩展性,支持关键字驱动,支持多种类型的客户端和接口,可进行分布式测试;



Selenium



应用于web的自动化测试工具,支持多平台、多浏览器、多语言来实现自动化,优点如下:



①开源、免费;



②多浏览器支持:chrome、Firefox、IE、Edge等;



③多平台支持:Linux、Windows、MAC;



④多语言支持:java、python、Ruby、C#、JavaScript、C++;



⑤对web界面有良好的支持;



⑥简单(API简单)、灵活(开发语言驱动);



⑦支持分布式测试用例执行;



5、做UI自动化测试,需要什么技能



①前端相关技术
HTML、XML、JavaScript、TCP/IP协议等



②一门编程语言



就像前面说的,selenium支持多种语言,根据个人情况以及项目的开发语言酌情选择;



③合适的工具选型



比如selenium,比如UTF等;



④需求分析



项目类型,特质,生命周期,是否适合开展自动化测试等;

https://www.cnblogs.com/imyalost/p/7241170.html



https://www.zhihu.com/zvideo/1368550532571938816



https://wetest.qq.com/cloud/deepcompatibilitytesting#/?from=sem_bd_dct



UIRecorder是一个什么样的工具。它其实就是通过录制脚本的形式去生成最后要回放的脚本,本质上是一个命令行工具。它主要的特性有三个。
第一个是通过录制的方式去生成脚本,从而减少我们手工编写脚本的复杂度。
第二个特性是,它可以进行一个多浏览器的回放。还有一个特性是说,它可以生成多视图的一个测试报告。



UIRecorder主要产出了什么,第一个是测试脚本,第二个是本次所生成的脚本回放的一个测试报告。可以看到,我们刚刚执行的操作,会有多维度的一个报表,我们会对每一个步骤进行截屏。这样能够方便我们去排查在测试的过程中所遇到的一些问题。对每一个步骤,也会有对应的生成的脚本,我们可以更好的去定位哪一部分脚本有问题



F2etest进行简单的介绍,它主要包含两个内容。
第一个是浏览器云。多浏览器兼容性手动测试,常用于开发过程中测试浏览器兼容性,以及用户反馈的线上问题排查和验证。



第二个是WebDriver云。多浏览器UI自动化测试,通过调用对应浏览器WebDriver为自动化测试提供多浏览器执行机环境。它的主要特性有三个。第一,云环境,提高测试效率。第二,真实多浏览器环境,还原测试场景。第三,多节点、多用户,提高资源利用率。



https://developer.aliyun.com/article/778089



UI 自动化的本质:
定位元素
操作元素
模拟页面动作
断言结果
生成报告



适合UI自动化测试的场景
当然,不是所有的测试场景都适合用自动化测试来实现。



对此,可以参考以下的标准辅助判断:



项目的需求不会频繁变动
页面的 UI 已经进入稳定阶段
项目周期足够长
大量回归的测试任务
其中,有一些项目是明显不适合使用 UI 自动化测试的,例如视频播放器(暴风影音,腾讯视频,爱奇艺等),音乐播放器(例如网易云音乐,QQ 音乐等)等交动性强,并发依赖强的软件。



原因是,这一类软件,判断视频内容对不对,判断音乐声音与歌词对不对,难度极大。



另外,延伸一个话题:关于自动化测试的覆盖率,面试会问到的一个点。



国内大多数互联网公司的项目迭代周期比较短,因此自动化覆盖率一般都不高。



具体还是要根据项目迭代周期进行描述,参考标准是:



迭代周期是半年或者一年以上的项目,每次需求变动很少,自动化测试的覆盖率一般是60%-70%,主要是覆盖之前的旧功能以及核心场景
迭代周期为一个月的项目, 覆盖率大概是25-30%,主要是覆盖 P0(极重要)级别的绝大多数用例,与 P1(重要)级别中的部分用例
1~2周一个迭代的项目,覆盖率大概是10%,主要是覆盖 P0(极重要)级别,可能会对用户造成严重影响的核心场景
其次,UI 自动化测试的时间切入点主要有2个:



冒烟测试阶段
回归测试阶段
UI 自动化测试设计原则
一个测试用例完成一个功能点测试(常用):一个手工用例对应一个自动化测试用例
一个脚本是一个完整的场景
脚本之间独立,不能有依赖(脚本间相互隔离):例如与登陆状态相关的用例:个人中心、订单详情、下单购物等,如果脚本之间不独立,相互依赖,在登陆的测试脚本失败的情况下,会导致个人中心、订单详情、下单购物的测试脚本全军覆灭,后续修复与维护成本高
设置合适的检查点:通过断言判断用例的成功与否
设计良好的框架:Python 常用的测试框架有 unittest 与 pytest,利用框架,及对共用的测试模块进行封装,减少自动化测试脚本维护的工作量



https://segmentfault.com/a/1190000023474856



https://www.jianshu.com/p/0fc9fc5f42e9



Python+Selenium+Unittest+Htmlreport 搭建的框架



sikuli 和 Airtest ,这两个工具使用图片识别的方法,相对于 selenium 来说,写起来方便一些



https://testerhome.com/topics/19438



Category golang