robotframework入门-项目三层架构

一:介绍

RF(Robot Framework)项目的三层架构是一种用于自动化测试设计的分层方法,旨在提高测试用例的灵活性、减少冗余代码,并方便脚本的维护。这种架构将数据和流程分离,使得测试逻辑更加清晰和可维护。

RF项目的三层架构主要包括以下三个部分:

  1. 元素层(Element Layer):这一层主要包含了库中的关键字,每个关键字都被视为一个元素。这些关键字是自动化测试的基本组成单元,可以执行特定的操作或验证。
  2. 流程层(Flow Layer):流程层由多个元素(即关键字)组成,用于构建测试用例的操作流程。这些流程可以重复使用,从而提高测试脚本的复用性。当需要编写新的测试用例时,只需将相关的流程组合起来,并传入必要的参数即可。
  3. 案例层(Case Layer):案例层是用户编写的具体测试用例,由多个元素和流程组成。这些用例需要导入流程层中定义的流程,以便执行实际的测试操作。案例层关注于具体的测试场景和预期结果,是自动化测试的核心部分。

通过这种三层架构的设计,RF项目能够实现以下优势:

  • 灵活性高:由于元素层和流程层的分离,测试用例可以灵活地组合和修改,以适应不同的测试需求。
  • 关键字使用率高:将关键字存储在元素层中,可以在多个测试用例中重复使用,提高了关键字的利用率。
  • 脚本维护方便:分层设计使得脚本结构清晰,便于定位问题和进行修改。当需要更新某个功能或操作时,只需在相应的层进行修改,而无需影响其他层的代码。 

 

二:应用 

  流程+案例

*** Settings ***
Library    RPA.Browser.Selenium    auto_close=${false}  
Resource    E:\\code\\RIDE\\RIDE\\helper\\public\\data.robot  # 公共数据模块
Resource    E:\\code\\RIDE\\RIDE\\helper\\public\\element.robot   # 公共关键字模块
Resource    element.robot  # 登录关键字模块
Resource    data.robot  # 登录关键字模块



*** Test Cases ***
Main_function
    # 正常登录
    login page
    Input Text    xpath=${input_class}    ${user_name}
    Input Password    xpath=${input_password_class}    ${password}
    Click Element    xpath=${button_class}
    set wait
    # 进入首页 点击案件开始
    Click Element    xpath = ${start_class}
    # 添加邀请人 (后续可做成循环)
    Input Text    xpath = ${people_name_class}    ${people_name}
    Input Text    xpath = ${people_phone_class}    ${people_phone}
    Click Element    xpath = ${role_list}
    ${element}=    Get WebElement    xpath=${role_tjy}
    Click Element    ${element}

元素

*** Variables ***
# 登录
${user_name}      ****
${password}     ****#A4#1511
${span_class}       //*[@id="app"]/div/div/div/div[1]/div/div/div[2]/div[2]/div/div[1]/div/div/div/div[1]/div[2]/div/span
${input_class}    //*[@id="app"]/div/div/div/div[1]/div/div/div[2]/div[2]/div/div[2]/div/form/div[1]/div[1]/div/div[1]/div[1]/input
${input_password_class}    //*[@id="app"]/div/div/div/div[1]/div/div/div[2]/div[2]/div/div[2]/div/form/div[2]/div[1]/div/div[1]/div[1]/input
${button_class}    //*[@id="app"]/div/div/div/div[1]/div/div/div[2]/div[2]/button
# 首页
# 未开始列表 开始按钮
${start_class}    //*[@id="app"]/div/div/div/div[1]/div/div[2]/div/div/div/div[1]/div/div/div/div[2]/div/div/div/div[2]/div/div[3]/button[1]
# 添加邀请人按钮
${add_people_class}    //*[@id="app"]/div/div/div/div[1]/div/div[2]/div/div/div/div[1]/div/div/div[3]/div[1]/button/span
# 邀请人姓名
${people_name_class}    //*[@id="app"]/div/div/div/div[1]/div/div[2]/div/div/div/div[1]/div/div/div[3]/div[2]/div/div[2]/tr/td[2]/div/div[1]/div/input
${people_name}    xiaoshuai2
# 邀请人手机号码
${people_phone_class}    //*[@id="app"]/div/div/div/div[1]/div/div[2]/div/div/div/div[1]/div/div/div[3]/div[2]/div/div[2]/tr/td[3]/div/div[1]/div/input
${people_phone}    1*0
# 身份下拉框
${role_list}    //*[@id="app"]/div/div/div/div[1]/div/div[2]/div/div/div/div[1]/div/div/div[3]/div[2]/div/div[2]/tr/td[4]/div/div/div/div/div[1]
${role_tjy}    //*[contains(text(), '调解员')]

 

  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值