当前位置: 首页 > 知识库问答 >
问题:

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

百里伟
2023-03-14

目前,我正在使用带有诺基亚/红色插件的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个答案

何勇
2023-03-14
匿名用户

如果您想知道基于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")

    ...

艾焱
2023-03-14

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

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

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

使用PyDev进行红色调试

 类似资料:
  • 我使用的是RxJava组合测试操作符。 根据文档,订阅时,只有在两个可观察对象都发出这些值之后,才会发生第一个组合发射事件,从这一点开始,它将在每个可观察对象的每次发射时发射。 如何确定第一个可观察到的发射事件已经发生,它现在正在等待第二个...

  • 问题内容: 我在python中有以下代码 我的问题是在test_home_page函数之后,firefox实例关闭并为下一个test_whatever函数再次打开。我该怎么做,以便所有测试用例都从同一firefox实例执行。 问题答案: 在以下位置初始化firefox驱动程序:

  • 22.13.2.调试 测试任务提供了Test.getDebug()属性,可使JVM等待调试器附加到5005端口后在进行调试. 通过调用--debug-JVM任务选项,这也可以启用调试任务(since Gradle1.12)。

  • 在程序运行过程中,总会遇到各种各样的错误。 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的。 有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理。 还有一类错误是完全无法在程序运行过程中预测的,比如写入文件的时候,磁盘满了,写不进去了,或者从网络抓取数据,网

  • 在程序运行过程中,总会遇到各种各样的错误。 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的。 有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理。 还有一类错误是完全无法在程序运行过程中预测的,比如写入文件的时候,磁盘满了,写不进去了,或者从网络抓取数据,网

  • 本文向大家介绍如何从TestNG中的测试用例集合中合并和删除测试方法?,包括了如何从TestNG中的测试用例集合中合并和删除测试方法?的使用技巧和注意事项,需要的朋友参考一下 我们可以借助testng xml文件中的<groups>标记从执行中合并和删除测试方法。 示例 Testng xml文件。 testNG xml具有要包含的Smoke组和要从执行中排除的CodingModule组。 示例 在