第1部分:设置和单元测试第2部分:集成和OPA测试第3.1部分:模拟服务器第3.2部分:代码覆盖率和其他必要的有用性第4部分:高级测试mumbo jambo(本文)第5部分:数字、经验和业务影响
测试设置完成,功能测试和集成测试已经完成,大数据中心,Mockserver和跨浏览器测试自动化都已经就绪。
现在让我们看看一些更高级的测试用例/场景,它们甚至可能触及"不按常规"和"需要完成"之间的灰色地带。
以下是本文的目录:
用于定制的QUnit fixture和QUnit DOM控制Web应用程序/控件/输入.jswebapp/测试/单元/视图/App.view.xml文件测试拖放OPA阴性试验UIveri5可视化回归测试第一次跑步回归测试运行结论
定制控件的qunitfixture和qunitdom
QUnit拥有一个特殊的HTML元素qunitfixture,可用于实例化DOM。因此,微博淘客,本质上这意味着你可以将任何UI5视图/控制器对放置在那里,以便与之交互和测试。
将集成测试"下移"到某个级别的可行用例可能是,你只想测试你的应用程序的一部分,例如,在复杂的UI设置中使用的完全成熟的自定义控件。为了测试该自定义控件,您需要在测试期间导航复杂的UI,仅用于"访问"该自定义控件。为了节省导航开销,为什么不将自定义控件放在独立的专用XML视图中呢?
假设我们有一个自定义输入控件,它设置了一个特殊的占位符:
通过在qunit fixture中的一个专用XML视图中隔离自定义控件并在那里实例化/呈现它,测试控件变得更易于管理。
现在剩下的是将各个部分放在一起:
动态实例化视图检索要测试的控件在控件上运行测试
好处:每次测试后,qunit夹具都会被拆掉,因此在随后的测试中不会对其他DOM元素或UI5控件产生干扰。
测试拖放
从UI5 1.56开始,所有UI5控件都普遍引入了拖放功能;期待已久,因为它是一个强大的用户体验概念。
它在元级别上使用,标记描述控件的拖放功能:
在上面的示例中,相应的{d}ragDrop*声明支持本地浏览器级别的事件来拖放列表项。删除后要做什么需要在控制器级别处理(drop=…)。
但是如何测试呢?
方法是多方面的:
把这些放在一个好的"接口"上,用语法糖覆盖它,然后通过"可说"的API消费,看起来像:
好,ey?!?这可能是在源代码处达到峰值的好时机。
现在,请记住,这一切都发生在单元测试级别,没有OPA5,没有UIveri5。在语法上,上述所有内容也可以在OPA5中重用。UIveri5有自己的方法,通过底层的量角器API,使用浏览器.操作().dragAndDrop(node1,node2).
OPA阴性测试
我们在博客系列的第2部分研究了OPA5的集成测试,智能物联,主要介绍了如何找到UI5控件并与之交互。但是,当应用程序逻辑(部分)移动到UI时,通常的做法是动态创建或销毁部分接口。测试可见的和现有的UI5控件很容易,大数据前景怎么样,但是如何检查不存在的控件呢?
在OPA级别编写这种"否定"测试(如:测试不存在的东西)基本上包括两个步骤:
在应用程序中查找所有UI5控件检查控件的标识和状态的可见性和/或存在性
在UI5应用程序中,有许多方法可以在控件树上递归,但是使用jQuery非常简单:
jQuery在App ID上的find()传递了它的所有子代DOM节点。
用SAP的control()扩展对jQuery进行迭代(https://ui5.sap.com/#/api/jQuery/methods/control)将DOM节点转换回其"UI5控件表示"。
然后检查控件本身并检查它是否不是我们正在寻找的控制,从而满足阴性测试要求:
同样,可能是一个很好的时间,在ImakeSurateReisno(sKind,sIdentifier)的完整来源达到峰值,以便对复杂的问题进行分类。
使用UIveri5进行视觉回归测试
测试块上最新的孩子是UIveri5,用于UI5应用程序的跨浏览器端到端测试。该工具本身是如此广泛和强大,值得一个单独的博客系列。我在SAP Inside Track Frankfurt 2019上做了一个初级介绍,淘客吧,可能值得一看,特别是它与OPA的区别。
在本文中,让我们重点介绍如何使用UIveri5进行可视化回归测试。让我们使用一个简单的最小测试用例,所以重点可以放在视觉测试部分:
在它的当前版本中,用于视觉测试的轮廓视觉是…嗯…次优的。更好的方法是重用集成概要文件,并使用屏幕截图功能对其进行增强:
take指示UIveri5截图,compare将截图与参考图像进行比较(详情如下),另外三个设置({storage | screenshot | comparison}Provider)使UIveri5使用本地(也就是在您的计算机上)工具而不是远程功能。顺便说一句:用于图像比较的主要工具是相似.js!
在能够比较图像之前,显然需要一个参考截图。
首先,启动本地Web服务器:grunt serve。
UIveri5将在上述配置文件中设置update:true时自动创建参考截图。参考图像存储在与上述浏览器配置选项相关的文件夹层次结构中:
从命令行启动uiveri5并让它完成工作–请注意,*中的测试。规格js由于缺少参考屏幕截图,在第一次运行期间所有操作都将失败。
运行完成后,选择结果路径并文件,将它们提交到版本控制并用于后续的可视化回归测试运行!
参考图像就位后,在配置文件中设置update:false,然后再次运行uiveri5(不要忘记grunt-serve!)–就是这样: