Robot Framework 学习_4(python+Robot Framework)

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 为解决自动化问题而生的框架,更多内容后面再了解记录吧

你可能感兴趣的:(Robot,Framework)