今天我们在上篇安装了Zalenium的基础上,介绍如何在原有的Robotframework+Selenium Docker的框架中,来通过Zalenium,回放失败用例当时的“案发现场”。
问题1:如何让原来Selenium docker的运行过程在Zalenium中展现出来?
解决方法:修改open browser的一个参数remote_url的端口,原来的端口5555换成4444(remote_url=http://localhost:4444/wd/hub)即可。启动Selenium Docker和Zalenium,运行。
问题2: Zalenium的运行结果,每个suite/case的默认名字是session ID(一个随机字符串),无法看出当前是哪个用例的回放。
解决方法:open browser的时候指定一个参数 desired_capabilities=name:${SUITE NAME},即可获得当前执行用例的名字,并显示在 Zalenium中。
问题3: 如果docker 并发执行,默认会把这个node的所有suite的名字拼成前缀,太长,Zalenium中不方便查看。
解决方法:通过修改pybot的参数-name,即可指定这个node的suite的名字的前缀,更简洁(效果如本文最后的图片)。
问题4: Zalenium有completed, success,failed 3种状态,但默认出来的都是completed,而不会标志failed/success. 如何才能识别执行成功或者失败?
解决方法:在test suite的tear down 里添加如下语句,会在执行中有出错的情况下看到Zalenium的图标显示为failed。
run keyword if any tests failed add cookie zaleniumTestPassed false
同理,suite tear down里添加如下语句,才会显示success.
run keyword if all tests passed add cookie zaleniumTestPassed true
建议将上述语句封装到一个关键字里,并在suite tear down里调用。
问题5: 在前面的已经通过cookie标识了失败用例的前提下,大部分时候我们希望只看那些失败的用例的回放。Zalenium如何只显示失败的用例?
解决方法:参数--keepOnlyFailedTests 可以在启动Zalenium的时候用到。如果在docker-compose.yml中,则如下黄色部分设置即可:
网友评论