在 Robot Framework 中使用关键字驱动的方法执行测试用例时显示错误

Posted

技术标签:

【中文标题】在 Robot Framework 中使用关键字驱动的方法执行测试用例时显示错误【英文标题】:Shows error when executing test case using keyword driven approach in Robot Framework 【发布时间】:2015-04-25 17:03:29 【问题描述】:

我是机器人框架自动化测试的新手。我使用 Python 为简单的测验应用程序编写脚本和库,并遵循关键字驱动的测试用例方法。 我的脚本是:

class Quiz(object):
OPTIONS = 'ab'
count = 0

def __init__(self):
    self._score = 0
    Quiz.count+=1
def score(self, str1):
    if str1 not in self.OPTIONS:
        raise QuizError("Invalid button '%s'." % str1)
    if str1 == 'a' and Quiz.count == 1:
        self._score +=1 
    elif str1 == 'a' and Quiz.count == 2:
        self._score +=1
    elif str1 == 'a' and Quiz.count == 3:
        self._score +=1
    return self._score  


class QuizError(Exception):
pass

库文件:

from quiz import Quiz, QuizError
class QuizLibrary(object):


def __init__(self):
    self._calc = Quiz()
    self._result = 0

def option(self, answer):        
    self._result = self._calc.score(answer)


def result(self, expected):

    if self._result != expected:
        raise AssertionError('%s != %s' % (self._result, expected))

keyword_driven.txt:

*** Settings ***

Library quizlibrary.py

*** Test Cases ***

Quiz Answer

    option    a

    option    b

    option    a

    result    2

它显示以下错误:

Quiz Answer                                                                FAIL |
No keyword with name 'option' found.
----------------------------------------------------------------------------------------
Testcase :: Example test cases using the keyword-driven testing approach.       | FAIL |
1 critical test, 0 passed, 1 failed
1 test total, 0 passed, 1 failed

谁能帮我解决这个问题?

请告诉我如何以关键字驱动的方式创建用户关键字。

【问题讨论】:

【参考方案1】:

用于关键字库的 Python 模块的名称一定有问题。

如果您的模块名称是 QuizLibrary.py,则在您的测试中更改库导入中的大小写:

图书馆 QuizLibrary.py

如果您的模块名称是 quizlibrary.py,则将类的名称与此对齐:

类测验库(对象):

另外,不要忘记在“图书馆”和图书馆名称之间至少有 2 个空格。

【讨论】:

模块名称没有问题,但是总是显示“keyword not Found”,请问为什么会出现这个错误? 我在本地复制了您的代码(使用我建议的修复程序)并且可以使其正常工作...因此,如果您仍然有“找不到关键字”,则表示未正确加载库。在日志中,你没有任何关于加载lib的错误信息吗? ya..问题已通过您的建议解决。感谢您的回复

以上是关于在 Robot Framework 中使用关键字驱动的方法执行测试用例时显示错误的主要内容,如果未能解决你的问题,请参考以下文章

在 Robot Framework 中传递 *args

在 Robot Framework 中使用关键字驱动的方法执行测试用例时显示错误

Robot Framework 字符串分隔

Robot Framework - 如何在 Eclipse 中导入 SeleniumLibrary 关键字实现/文档

Robot Framework重点

robot FrameWork的关键字使用