本文简单介绍了如何在robot里面调用一个python写的函数。
构建
我们在D盘下创建两个文件,一个叫pyfile.py
,用于编写python函数,另外一个叫test.txt
,编写我们的测试用例。
pyfile.py
的内容如下:
def sum(a, b):
return int(a) + int(b)
很简单,定义了一个函数sum
,用于返回两个数的和,注意return int(a) + int(b)
这里为什么使用了int
进行转换,因为robot传递过来的值,默认是str
类型。
test.txt
的内容如下:
*** Settings ***
Library pyfile
*** TestCases ***
Step1: test_sum_1
${ret} sum 1 1
Should Be Equal ${ret} ${2}
代码解析:
-
*** Settings ***
和*** TestCases ***
都是robot的标识,必须顶格 -
Library pyfile
是引入python的库,类似于python里面的import
,我们这样引入后,就可以使用pyfile
里面的sum
函数了 -
${ret} sum 1 1
调用了sum
函数,并且传递了两个参数都是1,其中返回值使用${ret}
接收,robot里面定义一般变量的方式就是${}
- 最后我们使用
Should Be Equal ${ret} ${2}
判断了是否相等,这里${2}
为什么把2
包起来呢,上面说了,robot里面默认是str
类型, 如果直接使用2
,那么是一个str
,sum
返回的是一个int
,导致不相等,而使用${2}
这种方式,表示就是int
类型的2
,你可以试试把${2}
改成2
在次运行用例,查看报错的信息。
运行
同样,先在cmd下进入D盘,使用下面的命令:
robot test.txt
输出类似:
D:\>robot test.txt
==============================================================================
Test
==============================================================================
Step1: test_sum_1 | PASS |
------------------------------------------------------------------------------
Test | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Output: D:\output.xml
Log: D:\log.html
Report: D:\report.html
D:\>
最后打开你的log.html
类似