Testing 使用Jenkins和x2B实现测试自动化;机器人框架
经过长时间的网络搜索,我想问你以下问题Testing 使用Jenkins和x2B实现测试自动化;机器人框架,testing,jenkins,robotframework,Testing,Jenkins,Robotframework,经过长时间的网络搜索,我想问你以下问题 我们使用詹金斯来构建和单元测试,该代码是用C++编写的。 这很有效。在研究fitnesse和robotframework之后,我仍然无法运行以下测试问题 我的程序是一个命令行程序,它读取一些输入文件并计算一些输出数据。(例如simcode.exe-j input##.inp-->output.dat) 我正在寻找一种通过web界面创建测试套件的方法。这意味着我为每个测试用例提供一个输入文件和一些参考输出数据,测试套件在Jenkins成功构建之后执行。根据输
我们使用詹金斯来构建和单元测试,该代码是用C++编写的。 这很有效。在研究fitnesse和robotframework之后,我仍然无法运行以下测试问题
我的程序是一个命令行程序,它读取一些输入文件并计算一些输出数据。(例如simcode.exe-j input##.inp-->output.dat) 我正在寻找一种通过web界面创建测试套件的方法。这意味着我为每个测试用例提供一个输入文件和一些参考输出数据,测试套件在Jenkins成功构建之后执行。根据输出数据和参考输出数据之间的差异结果,应该创建一个xml文件,该文件可以提供给Jenkins。此xml文件应包含有关所有测试用例结果的信息(例如,成功与否) xml文件的信息应该再次显示在Jenkins中 我正在寻找一种不需要为我的程序编译任何库的方法 我将非常感谢任何能够解释如何使用RobotFramework实现这一点的提示。(这可能吗?)提前谢谢 机器人框架是一个测试自动化工具。。。你可以用它做很多不同的事情 我真的不明白你通过web界面使用测试套件的意思。。。但一般来说,您描述的功能似乎可以通过RobotFramework完成 简言之 您可以创建一个测试套件,其中可以有许多测试用例,例如,您可以有一个或每个要检查的输入文件 具有关键字Run,您可能可以使用该关键字,或者如果您正在远程运行命令,则可以从可选的 对于每个测试用例,您都可以创建一个运行命令的步骤,以及另一个根据预期验证输出文件的步骤。如果它们匹配,测试用例将标记为通过,否则将标记为失败 RobotFramework可以为您运行的每个测试套件生成html格式的日志和报告文件 Jenkins和Hudson有一个RobotFramework插件,您可以使用它以非常好的方式显示这些输出文件!
i、 e.有多少测试用例通过/失败您想要的似乎是一颗灵丹妙药。 这是可行的,您不需要编译任何东西,但仍然需要围绕robot框架编写一些逻辑
*** Settings ***
Library OperatingSystem
*** Test Cases ***
Basic test
Run Me A Command simcode.exe -j input01.inp
*** keywords ***
Run Me A Command
[Arguments] ${command}
${rc} ${output} = Run and Return RC and Output ${command}
Log ${output}
Should Be Equal As Integers ${rc} 0
Should Not Contain ${output} FAIL
*** settings ***
Library OperatingSystem
*** Test Cases ***
Combinations
[Template] Basic test
input01.inp
input02.inp
input03.inp
*** keywords ***
Basic test
[Arguments] ${input}
Run Me A Command simcode.exe -j ${input}
Run Me A Command
[Arguments] ${command}
${rc} ${output} = Run and Return RC and Output ${command}
Log ${output}
Should Be Equal As Integers ${rc} 0
Should Not Contain ${output} FAIL
*** settings ***
Library OperatingSystem
*** Test Cases ***
Combinations
[Template] Basic test
../resources/input01.inp ../resources/expectedoutput01.out
../resources/input02.inp ../resources/expectedoutput02.out
../resources/input03.inp ../resources/expectedoutput03.out
*** keywords ***
Basic test
[Arguments] ${input} ${expected_output}
Run Me A Command simcode.exe -j ${input}
Log File output.data
Compare Files ${expected_output} output.data
[defaults]
n_1=1
n_4=2
n_9=3
我们有一个输出数据
[defaults]
n_1=1
n_4=2
n_9=2
然后我们需要为自己编写一个文件比较器。
如果您确信文件应该是相同的,您可以使用diff和OperatingSystem库,或者您可以编写一个简单的比较器,如:
def get_param(self,theFile)
config = ConfigParser.RawConfigParser()
config.read(theFile)
return config.items("defaults")
def compareMyDict(self, expected, actual): #There are better ways of doing this
for k, v in actual:
if v != expected[k]:
print("error message")
print(k)
print(v)
print(expected[v])
#print whatever you deem fit
return
print("Matched OK " + str(k))
print(k)
print(v)
print(expected[v])
def compare_files(self, expectedFile, actualFile):
'''
From sourceFile formatted
[defaults]
key=value
'''
d1 = get_param(expectedFile)
d1 = get_param(actualFile)
compareMyDict(d1,d2)
checkLenghts(d1,d2)
criteria2(d1,d2)
#etc.
4和5。运行后,使用publish artefact和publish robot结果插件将格式良好的输出传递给Jenkins
瞧
PS:代码可能无法运行-我在一个简单的编辑器中以自由方式编写,没有突出显示语法,也没有对其进行测试