美文网首页软件测试精进之路百人计划
软件测试52讲笔记--18 眼前一亮:带你玩转GUI自动化的测试

软件测试52讲笔记--18 眼前一亮:带你玩转GUI自动化的测试

作者: cynthia猫 | 来源:发表于2018-08-12 19:00 被阅读66次

    这是我购买的"极客时间"上的一套课程的笔记,总共52讲,定期对其中的内容做一笔记,巩固学习内容。

    18 眼前一亮:带你玩转GUI自动化的测试报告

    早期基于视频的GUI测试报告

    GUI自动化测试框架会对测试执行整个过程进行屏幕录像并生成视频。
    主要问题:

    1. 体积大,不方便管理和实时传输。
    2. 分析时往往需要结合测试用例以及服务端的日志信息,视频报告这一点上有所欠缺。
      所以理想的测试报告应该由一系列按时间顺序排列的屏幕截图组成,并且截图上可以高亮显示所操作的元素,同时按照执行顺序配有相关操作步骤的详细描述。
      目前商业的GUI自动化测试软件,如UFT已经自带了截图以及高亮显示操作元素功能。

    开源GUI测试框架的测试报告实现思路

    利用Selenium WebDriver的screenshot函数在一些特定的时机,完成界面截图功能。
    代码实现的方式:

    1. 扩展Selenium原本的操作函数
    2. 在相关的Hook操作中调用screenshot函数

    第一,扩展Selenium原本的操作函数

    比如实现一个自己的click函数:

    • 首先,用JS代码高亮显示被操作的元素
    • 然后,调用screenshot函数完成点击前的截图
    • 最后,调用Selenium原生的click函数完成真正的点击操作

    第二,在相关的Hook操作中调用screenshot函数

    对Hook的理解:
    当执行某个函数F时,系统会在执行函数F前先隐式执行一个空实现的函数,那么当你需要做一些扩展或者截屏时,就可以在这个空实现的函数中加入自定义的操作。这个空实现的函数就是所谓的Hook函数。

    这样的例子有很多,比如Java的main函数,执行之前会先隐式执行premain函数;JUnit和TestNG,都有BeforeTest和AfterTest方法,都是可以在特定步骤的前后插入自定义操作的接口。
    因此,可以在这些Hook函数中添加截图、元素高亮、以及额外的任意操作,比如更多的详细日志输出等等。
    之后作者举了具体的例子,可以看一下。

    全球化GUI测试报告的创新设计

    作者举了具体的例子说明,横向展示一个国家的业务测试顺序截图,纵向展示同一界面在不同国家的形式。
    这个是设计上的思路,阅读分析报告时,会比较清晰。

    同时,在测试报告中可以直接提供递交缺陷的按钮,一旦发现问题直接递交缺陷,同时把相关截图一起直接递交到缺陷管理系统,更大程度的提高整体效率。
    现在的缺陷管理系统往往对外都有暴露API接口,可以利用这些API接口进行实现。

    【心得】居然早期还有过这种直接录屏的视频报告,真的是第一次听说。不过也是在早期软件迭代周期比较长的时候,才有可能实现吧。现在移动互联网时代,产品迭代周期短,测试时间短,很难再有人力去整理阅读视频报告了吧!
    后面提到的截图高亮,不错,以前自己的项目中考虑过截图,但是没有想到高亮,看作者说的,也不难,就是调用JS代码进行高亮显示即可。
    然后就是关于Hook函数的说明。之前对BeforeTest和AfterTest方法有了解,原来这些都是Hook函数呀,学习了!
    关于全球化的那个例子,自己没有做到这种项目,不过作者提供的思路很好。如果有类似的场景,也可以考虑这种设计方法呀!

    相关文章

      网友评论

        本文标题:软件测试52讲笔记--18 眼前一亮:带你玩转GUI自动化的测试

        本文链接:https://www.haomeiwen.com/subject/hmtebftx.html