我眼中的robot framework
由于近期公司需要,需要一个测试框架对于公司的服务做自动化测试。
由于服务的复杂性,人工测试的方式越来越复杂,体现在以下方面:
1.人工测试步骤复杂,容易出错。服务的复杂性会使人工测试的准备工作,测试条件以及测试反馈都越来越复杂。
2.人工测试难以重复。随着产品的迭代越来越快,人工测试需要不断重复测试,此时人力投入成本很高。
自动化测试框架
优点
1.测试步骤自动化,不像人工测试那样容易出错。
2.测试步骤可以反复进行,不需要或者很少需要人工介入。
3.测试步骤在接口等改变后,容易替换,因为其测试数据和测试步骤是分离。
缺点
1.测试自动化需要人编写代码,初期投入较大。
2.测试自动化需要人维护以及测试其正确性,维护也需要成本。
在这个阶段不得不新增自动化测试框架对于服务进行操作。我一个软件研发工程师现在需要做测试开发工程的工作还是有点变扭。
robot framework简介
robot framework是使用python语言写的一种验收测试和验收测试驱动开发(ATDD)的自动化测试框架,这是一个跨平台的自动化测试框架。由于robot framework的关键字以及测试套件特性。通过类似于函数一样的关键字不仅可以实现复用和组合编程,而且还可以通过python语言实现的函数来灵活地实现自动化测试。
robot framework适用场景
1.用于单元测试,这是没有问题的,一般单元测试中一般都是一步一步完成的
2.用于功能测试,这是没有问题的,一般功能测试中一般都是一步一步完成的
3.用于集成测试,这时有不合适的地方,rf一般是顺序执行的,但在集成测试中需要并发测试,这种测试需要加入写入的并发关键字
robot framework使用心得
1.自定义库
go test的函数调用gotest.py
1 class GOTest(object): 2 def __init__(self): 3 pass 4 def run(self,goPath,binPath): 5 cmd = 'set GOPATH=' + goPath + ' && cd ' + binPath \ 6 + ' && go test -v' 7 res = os.popen(cmd) 8 if 'FAIL' in res: 9 return False 10 return True
robot framework的python库__init__.py
1 from gotest import GOTest 2 3 class GOTEST(GOTest): 4 ROBOT_LIBRARY_SCOPE = 'GLOBAL'
将其放入python的第三方库中就是Lib\site-packages。
通过robot framework创建资源的方式加载GOTEST库,然后通过robot framework的关键字对函数run加载。
2.测试用例
测试用例中setup可以初始化,teardown哪怕在失败时也会执行,编辑时可以使用关键字,如gotest | d:\\gotest | d:\\project。
3.测试套件
a.测试套件中setup可以初始化,teardown哪怕在失败时也会执行,编辑时可以使用关键字,如gotest | d:\\gotest | d:\\project。
b.测试套件的setting中可以加载资源以及自定义库。
4.使用命令行跑测试用例
pybot -T -o D:\\output D:\\testcase,这个命令schtasks /creat /tn 设定定时运行的名字 /tr “运行程序” /sc daily可以用于每日自动化用力运行
安装robot framework步骤
1.安装python
2.安装robot framework
3.安装wxPython
4.安装ride,这是robot framework的图形编辑界面