Robot Framework
框架是用python
语言开发,所以本质也可以作为python
中的一个库,所以直接编程时作为库引用,基于代码模式来实现基于Robot Framework
的自动化框架测试
from robot.api import TestSuite
from robot.api import ResultWriter
class BaiduSearchTest(object):
def __init__(self,name,librarys=['SeleniumLibrary']):
# 创建测试套件
self.suite = TestSuite(name)
#导入SeleniumLibrary包
for lib in librarys:
self.suite.resource.imports.library(lib)
#定义变量
def create_variables(self):
#变量表达形式也是${变量名}
variables = {
"${baidu}":"https://www.baidu.com",
"${browser}":"chrome",
"${search_input}":"id=kw",
"${search_btn}":"id=su",
}
for k,v in variables.items():
self.suite.resource.variables.create(k,v)
#测试用例:启动浏览器
def open_browser(self):
#用例名称
test_01 = self.suite.tests.create("启动浏览器")
test_01.keywords.create("Open Browser",args=["${baidu}","${browser}"]) #使用关键字,并赋值
test_01.keywords.create("Title Should Be",args=['百度一下,你就知道'])
#测试用例:百度搜索
def search_word(self):
test_02 = self.suite.tests.create("百度搜索测试")
test_02.keywords.create("Input Text",args=["${search_input}","selenium"])
test_02.keywords.create("Click Button",args=["${search_btn}"])
test_02.keywords.create("Sleep",args=["5s"])
#断言搜索成功后页面标题
def assert_title(self):
test_03 = self.suite.tests.create("页面标题验证")
test_03.keywords.create("Title Should Be",args=['selenium_百度搜索'])
#关闭浏览器
def close_browser(self):
test_04 = self.suite.tests.create("关闭浏览器")
test_04.keywords.create("Close All Browsers")
def run(self):
self.create_variables()
self.open_browser()
self.search_word()
self.assert_title()
self.close_browser()
result = self.suite.run(critical="百度搜索",output="output.xml") #执行测试套件,并输出文档
ResultWriter(result).write_results(report="report.html",log="log.html") #生成日志及报告文档
if __name__=="__main__":
print("用python写的robot framework测试")
suite=BaiduSearchTest("百度搜索测试套件")
suite.run()
如上使用代码形式时,变量定义也是采用${变量名}
形式,test_01 = self.suite.tests.create("启动浏览器")
创建测试用例,并设置用例名称
设置关键字并赋值,Open Browser
为框架定义的关键字,或自己定义的关键字,args=["${baidu}","${browser}"]
填写参数,类似于不用python代码时的Open Browser ${URL} ${BROWSER}
这种形式
test_01.keywords.create("Open Browser",args=["${baidu}","${browser}"])
执行测试套件
result = self.suite.run(critical="百度搜索",output="output.xml")
生成报告以及日志文档
ResultWriter(result).write_results(report="report.html",log="log.html")
对Robot Framework
进行了简单的熟悉,使用python
语言进行Robot Framework
框架的使用,Robot Framework框架对很多类进行了封装,确实省去了自己对类的封装,但是对其关键字语法的使用确实还不太习惯,所以还是根据具体场景来使用吧。强大的Robot Framework
为解决自动化问题而生的框架,更多内容后面再了解记录吧