Robot Framework12-RF如何减少web窗口打开次数

认真看过前2篇文章是否发现一个简单的“验证当系统中没有课的时,是否能成功添加一个课程”测试用例,在执行的时候出现多次登录和退出操作。那么如何进行优化呢?本篇将对RF如何减少web窗口打开的次数进行展开讲解,希望感兴趣的小伙伴可以坚持看下去同时欢迎提出宝贵的意见让我们一起进步!

01:需求概述

(1)用例名称:验证当系统中没有课的时,是否能成功添加一个课程

(2)用例现状:初始化操作、执行用例、清除操作均各打开且关闭浏览器一次

(3)现状缺点:每次打开都要加载页面需要耗费不少时间

(4)优化要求:实现执行一条用例只打开和关闭一次浏览器用户名和密码也只有第一次需要输入

(5)实现思路:①使用Suite SetupSuite Teardown,保证浏览器打开和关闭只执行一次②将DeleteAllLesson进行改造使之只有第一次需要输入用户名和密码

02:Go To

1)关键字含义:访问某个网址(前提是已经打开过浏览器)

2)关键字参数:url

用户关键字优化后代码实现如下

*** Keywords ***
login
    [Arguments]  ${username}     ${password}
    go to   http://localhost/mgr/login/login.html
    input text  id:username     ${username}
    input text  id:password     ${password}
    click element   tag:button
addCourse
    [Arguments]     ${name}     ${desc}     ${display_idx}
    click element  css:[class="glyphicon glyphicon-plus"]
    input text     css:[ng-model="addData.name"]    ${name}
    input text     css:[ng-model="addData.desc"]    ${desc}
    input text     css:[ng-model="addData.display_idx"]     ${display_idx}
    click element  css:[ng-click="addOne()"]
    sleep  1
listCourse
    [Return]     ${expect}
    ${eles}    get webelements   xpath://td[2]
    FOR     ${ele}       IN      @{eles}
        log to console      ${ele}
    END
    ${expect}      evaluate   [ele.text for ele in $eles]
#*********************优化部分代码*********************
SetupDeleteAllLesson
    login   auto     sdfsdfsdf
    TeardownDeleteAllLesson
TeardownDeleteAllLesson
    set selenium implicit wait  1
    FOR     ${i}    IN RANGE     9999
        ${del_buttons}=       Get Webelements  css:[ng-click="delOne(one)"]
        exit for loop if     $del_buttons==[]
        evaluate  $del_buttons[0].click()
        click element  css:[class="btn btn-primary"]
        sleep   2
     END
    ${expect}     listcourse
     set selenium implicit wait  1
     should be true       $expect==[]
setup webtest
    open browser  http://localhost   chrome
    set selenium implicit wait  5
teardown webtest
    close browser
#*********************优化部分代码*********************

测试用例优化后代码实现如下

*** Settings ***
Resource  rc2.robot
Suite Setup  setup webtest
Suite Teardown  teardown webtest
Test Setup    SetupDeleteAllLesson
Test Teardown  TeardownDeleteAllLesson

*** Test Cases ***
case1
#增加课程
    addCourse   初中地理    初中地理基础知识     1
#获取课表内容
    ${expect}   listCourse
    should be true      $expect == ['初中地理']
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容