提问者:小点点

在Robot framework和python selenium的组合中调试测试用例


目前,我正在使用带有诺基亚/红色插件的Eclipse,它允许我编写robot框架测试套件。支持Python 3.6和Selenium。我的项目叫做“自动化”,测试套件在中。robot文件。测试套件具有称为“关键字”的测试用例。

测试用例

创建新车辆

Create new vehicle with next ${registrationno} and ${description}
Navigate to data section

这些“关键字”是从python库导入的,如下所示:

@keyword("Create new vehicle with next ${registrationno} and ${description}")
def create_new_vehicle_Simple(self,registrationno, description):
    headerPage = HeaderPage(TestCaseKeywords.driver)
    sideBarPage = headerPage.selectDaten()
    basicVehicleCreation = sideBarPage.createNewVehicle()
    basicVehicleCreation.setKennzeichen(registrationno)
    basicVehicleCreation.setBeschreibung(description)
    TestCaseKeywords.carnumber = basicVehicleCreation.save()

问题是当我运行测试用例时,在日志中我只得到整个python函数的结果,通过或失败。我看不到它在哪一步失败了——是在这个函数的第一步还是第二步。

对于这种情况,是否有插件或其他解决方案能够看到哪个python函数通过或失败?(当然,解决方法是在TC中为每个函数使用关键字,但这不是我喜欢的)


共2个答案

匿名用户

如果您需要“进入”python定义的关键字,您需要将python调试器与RED一起使用。

这可以通过任何python调试器来完成,如果您希望将所有内容都放在一个应用程序中,那么PyDev可以与RED一起使用。

请遵循下面的帮助文档,如果您遇到任何问题,请在此处留言。

使用PyDev进行红色调试

匿名用户

如果您想知道基于python的关键字中的哪个语句失败了,只需让它抛出一个适当的错误。然而,机器人不会为你做这件事。从报告的角度来看,基于python的关键字是一个黑盒子。您必须显式添加日志消息,并返回有用的错误。

例如,调用侧栏页。createNewVehicle()应引发异常,例如“无法创建新车辆”。同样,对基本车辆创建的调用。setKennzeichen(registrationno)应引发类似“未能注册车辆”的错误。

如果您无法控制这些方法,可以从关键字中执行错误处理:

@keyword("Create new vehicle with next ${registrationno} and ${description}")
def create_new_vehicle_Simple(self,registrationno, description):
    headerPage = HeaderPage(TestCaseKeywords.driver)
    sideBarPage = headerPage.selectDaten()
    try:
        basicVehicleCreation = sideBarPage.createNewVehicle()
    except:
        raise Exception("unable to create new vehicle")

    try:
        basicVehicleCreation.setKennzeichen(registrationno)
    except:
        raise exception("unable to register new vehicle")

    ...