自动化测试-Robot Framework(十一)

举报
Fitz 发表于 2017/12/23 15:26:49 2017/12/23
【摘要】 (十一)用 Python 写 Robot Framework 测试我前面已经介绍过 Robot Framework 框架是基于 Python 语言开发的,所以,它本质上是 Python 的一个库。这一节写给:1、你懂 Python 语言。2、又想使用 Robot Framework 测试框架,因为它提供了很好的测试报告。百度搜索实例 创建 py_robot.py 文件,代码如下:from robo

(十一)用 Python 写 Robot Framework 测试

我前面已经介绍过 Robot Framework 框架是基于 Python 语言开发的,所以,它本质上是 Python 的一个库。

这一节写给:

1、你懂 Python 语言。

2、又想使用 Robot Framework 测试框架,因为它提供了很好的测试报告。

百度搜索实例



创建 py_robot.py 文件,代码如下:

from robot.api import TestSuite

from robot.api import ResultWriter

from robot.model import Keyword

 

 

# 百度搜索测试

class BaiduSearchTest:

 

    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_browsers(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}", "测试教程网"])

        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=["测试教程网_百度搜索"])   

 

    # 测试用例:关闭测试用例

    def close_browsers(self):

        test_04 = self.suite.tests.create("关闭浏览器")

        test_04.keywords.create("Close All Browsers")   

 

    # 运行

    def run(self):

        self.create_variables()

        self.open_browsers()

        self.search_word()

        self.assert_title()

        self.close_browsers()       

 

        # 运行套件

        result = self.suite.run(critical="百度搜索",

            output="output.xml")       

 

        # 生成日志、报告文件

        ResultWriter(result).write_results(

           report="report.html", log="log.html")

 

if __name__ == "__main__":

    print("PythonRobot Framework测试")

    suite = BaiduSearchTest("百度搜索测试套件")

    suite.run()

这段代码的运行通过 python 命令来执行。

> python py_robot.py

 

PythonRobot Framework测试

==============================================================================

百度搜索测试套件

==============================================================================

启动浏览器

DevTools listening on ws://127.0.0.1:12950/devtools/browser/bcbf14bb-ebc4-425c-882f-44531afd9689

启动浏览器                                                            | PASS |

------------------------------------------------------------------------------

百度搜索测试                                                          | PASS |

------------------------------------------------------------------------------

断言验证搜索结果标题                                                  | PASS |

------------------------------------------------------------------------------

关闭浏览器                                                            | PASS |

------------------------------------------------------------------------------

百度搜索测试套件                                                      | PASS |

0 critical tests, 0 passed, 0 failed

4 tests total, 4 passed, 0 failed

==============================================================================

Output:  D:\rf_test\robotSe\output.xml

Robot Framework 用的好,Python 少不了!所以,我的建议是要想用好 Robot Framework 必须要学习和掌握 Python 语言。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。