在前端自动化测试中,Protractor 是一个非常流行的工具。而 beat-protractor 是一个针对 Protractor 进行扩展的 npm 包,它提供了一系列功能较强的断言语句以及定制化的 Reporter。本文将介绍如何使用 beat-protractor 扩展 Protractor 进行前端自动化测试。
安装
使用 npm 可以很方便地为项目安装 beat-protractor。
npm install beat-protractor --save-dev
安装后,还需要在 Protractor 的配置文件中进行如下配置:
-- -------------------- ---- ------- ----- ------------ - ------------------------------------ -------------- - - -- --------- ----------- - --------------------- - ------------------------------------- ---------- - -------------------------------------- ----------------- ---- --- --- -------------------------------- ---------------- - --
通过以上配置,beat-protractor 将添加新的 Reporter 用于 Protractor 测试的结果展示。
异步断言
在测试中,我们需要对页面的某些元素的属性或行为进行验证。Protractor 提供了 expect
和 assert
两个断言方式,但是在实际开发中我们经常会遇到需要在异步操作后进行断言的情况。此时可以使用 beat-protractor 提供的 expectAsync
和 assertAsync
进行断言。
-- -------------------- ---- ------- ----- -- - ------------------------------ ----- ----------- - ----------------------------- ---------- -------------- -- -- - -- ------ -------------------- -- ------ ----- -------------- - ---------------------- ----------------------------------------------------- -- ------ ----------------------------------- ---- ---- --- ------- --------- ---
在这个例子中,我们首先点击了一个登录按钮,然后等待一个 #success-message
元素的存在,并使用 expectAsync
进行验证。接下来我们等待登录结果中 URL 含有 'home'
,并使用 assertAsync
进行断言。
Reporter
beat-protractor 提供了一个可定制的 Reporter,让我们可以在测试执行过程中输出更加详细的报告信息。
-- -------------------- ---- ------- ----- ---------- ------- ------------ - -- -- ------------------ -- ------------------------ - ------------------ ------------------- - -- -- ----------------- -- ----------------------- - ---------------- ------------------- - - -- --- ---------- ----- -------------------------------- --------------
通过实现 reportSpecStarting
和 reportSpecResults
两个方法,我们可以对测试执行过程中开始和结束的时候输出自定义的报告信息。
除了 reportSpecStarting
和 reportSpecResults
,我们还可以通过继承 BeatReporter 并实现其它方法来获得更加全面的 Reporter,具体可以参考文档。
总结
通过以上介绍,读者应该已经了解了如何使用 beat-protractor 更加方便地进行前端自动化测试。在实际使用中,除了提供的例子之外,还可以结合项目实际需求,制定更加适用的测试方案。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055f8181e8991b448dce65