前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Robot Framework | 04 参数化基于Public API的RFS测试

Robot Framework | 04 参数化基于Public API的RFS测试

作者头像
苦叶子
发布2018-04-09 12:00:01
1.1K0
发布2018-04-09 12:00:01
举报
文章被收录于专栏:开源优测开源优测

概述

在上文中,我们基于Robot Framework的public API实现了一个基本的自动化测试实例。

下面我们对上文的代码进行进一步封装,对该测试代码实现利用Robot Framework强大的变量能力,来实现参数化封装。

代码

代码语言:javascript
复制
#-*- coding:utf-8 -*-

__author__ = "苦叶子"

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)        
    
        # 导入支持库
        for lib in librarys:
            self.suite.resource.imports.library(lib)    
    
    # 创建变量
    def create_variables(self):
        variables = {            
            "${baidu}": "http://www.baidu.com",            
            "${browser}": "Chrome",            
            "${searchWord}": "开源优测",            
            "${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}", "${searchWord}"])
        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("Robot Framework基本执行过程演示代码-高级版")

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

将上述代码保存至search_baidu_adv_demo.py中,执行下属命令运行:

python search_baidu_adv_demo.py

IOS赞赏专用

在当前运行目录会生成三个文件:

  • log.html 日志记录
  • output.xml 原始测试记录
  • report.html 测试报告

日志

运行过程日志如下图:

测试报告

测试结果报告如下图:

总结

本文实例代码只是简单的进行封装,大家可以根据需要进一步结合PO模型进行封装,形成更为可用的组织方式。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源优测 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 代码
  • 日志
  • 测试报告
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档