robotframework-UI自动化项目实战

自定义关键字

使用 *** Keywords *** 设置自定义关键字

*** Settings ***
Documentation       用户的登录测试
Library            SeleniumLibrary
Suite Setup         打开浏览器设置最大化并隐式等待时间为5s
Test Setup          导航到首页
Test Teardown       删除cookies并截屏
Suite Teardown      关闭浏览器

*** Keywords ***
打开浏览器设置最大化并隐式等待时间为5s
    Open Browser    url=http://47.100.175.62:3000/   browser=chrome      executable_path=./drivers/chromedriver.exe
    maximize browser window
    set selenium implicit wait  5
关闭浏览器
    close all browsers
删除cookies并截屏
    delete all cookies
    set screenshot directory    screenshots
    capture page screenshot
导航到首页
    go to   http://47.100.175.62:3000/


*** Test Cases ***
测试正常的登录
    click element   xpath://*[text()="登录"]
    input text      id:name         fanmao_36
    input password  id:pass         123456
    click element   xpath://*[@value="登录"]
    location should be      http://47.100.175.62:3000/
    page should contain element     xpath://div[@class="user_card"]//span[@class="user_name"]
    ${username}=     get text        xpath://div[@class="user_card"]//span[@class="user_name"]
    Should Be Equal     ${username}     fanmao_36

测试错误的登录-错误的用户名和密码
    click element   xpath://*[text()="登录"]
    input text      id:name         fanmao_36
    input password  id:pass         1234567
    click element   xpath://*[@value="登录"]


测试错误的登录-空的用户名和密码
    click element   xpath://*[text()="登录"]
    input text      id:name         None
    input password  id:pass         None
    click element   xpath://*[@value="登录"]

将测试用例中的操作步骤转换为自定义的关键字

将测试用例中的操作步骤转换为自定义的关键字

cnode.robot

*** Settings ***
Documentation       用户的登录测试
Library            SeleniumLibrary
Suite Setup         打开浏览器设置最大化并隐式等待时间为5s
Test Setup          导航到首页
Test Teardown       删除cookies并截屏
Suite Teardown      关闭浏览器

*** Variables ***
${strnull}=


*** Keywords ***
打开浏览器设置最大化并隐式等待时间为5s
    Open Browser    url=http://47.100.175.62:3000/   browser=chrome      executable_path=./drivers/chromedriver.exe
    maximize browser window
    set selenium implicit wait  5
关闭浏览器
    close all browsers
删除cookies并截屏
    delete all cookies
    set screenshot directory    screenshots
    capture page screenshot
导航到首页
    go to   http://47.100.175.62:3000/

点击登录链接到达登录页面
    click element   xpath://*[text()="登录"]
    location should contain     /signin

使用用户名和密码进行登录
    [Arguments]     ${username}     ${password}
    input text      id:name         ${username}
    input password  id:pass         ${password}
    click element   xpath://*[@value="登录"]

验证登录成功-期望页面跳转到首页并在首页显示登录用户名
    [Arguments]     ${loginname}
    location should be      http://47.100.175.62:3000/
    page should contain element     xpath://div[@class="user_card"]//span[@class="user_name"]
    ${username}=     get text        xpath://div[@class="user_card"]//span[@class="user_name"]
    Should Be Equal     ${username}     ${loginname}

验证登录失败-期望页面有对应的错误提示信息
    [Arguments]     ${msg}
    ${result_text}=     get text    xpath://strong
    Should Be Equal     ${result_text}   ${msg}


*** Test Cases ***
测试正常的登录
    点击登录链接到达登录页面
    使用用户名和密码进行登录    fanmao_36   123456
    验证登录成功-期望页面跳转到首页并在首页显示登录用户名  fanmao_36


测试错误的登录-错误的用户名和密码
    点击登录链接到达登录页面
    使用用户名和密码进行登录    fanmao_35   123456
    验证登录失败-期望页面有对应的错误提示信息   用户名或密码错误


测试错误的登录-空的用户名和密码
    点击登录链接到达登录页面
    使用用户名和密码进行登录    ${strnull}   ${strnull}
    验证登录失败-期望页面有对应的错误提示信息   信息不完整。

项目pom

pom/homepage.robot

*** Settings ***
Documentation       网站首页
Library            SeleniumLibrary

*** Keywords ***
点击登录到达登录页面
    click element   xpath://*[text()="登录"]
    location should contain     /signin

点击注册到达注册页面
    click element   xpath://*[text()="注册"]
    location should contain     /signup

点击【发布话题】按钮跳转到发布话题页面
    click element   xpath://*[text()="发布话题"]

pom/loginpage.robot

*** Settings ***
Documentation       登录页面
Library            SeleniumLibrary

*** Keywords ***
使用用户名和密码进行登录
    [Arguments]     ${username}     ${password}
    input text      id:name         ${username}
    input password  id:pass         ${password}
    click element   xpath://*[@value="登录"]

testcases/basecase.robot

*** Settings ***
Documentation       登录页面
Library            SeleniumLibrary

*** Keywords ***
打开浏览器设置最大化并隐式等待时间为5s
    Open Browser    url=http://47.100.175.62:3000/   browser=chrome      executable_path=./drivers/chromedriver.exe
    maximize browser window
    set selenium implicit wait  5
关闭浏览器
    close all browsers
删除cookies并截屏
    delete all cookies
    set screenshot directory    screenshots
    capture page screenshot

在写测试用例的时候,可以引用已经定义好的关键字进行操作

testcases/testusers/testlogin.robot

*** Settings ***
Documentation       测试登录功能
Resource            ../basecase.robot
Resource            ../../pom/homepage.robot
Resource            ../../pom/loginpage.robot
Suite Setup         打开浏览器设置最大化并隐式等待时间为5s

*** Test Cases ***
使用正确的用户名和密码能够登录成功
    点击登录到达登录页面
    使用用户名和密码进行登录    fanmao_36   123456

执行

在项目的根目录进行运行。

数据驱动测试

数据驱动主要使用 test template 关键字设置

pom/loginpage.robot

*** Settings ***
Documentation       登录页面
Library            SeleniumLibrary

*** Keywords ***
使用用户名和密码进行登录
    [Arguments]     ${username}     ${password}
    input text      id:name         ${username}
    input password  id:pass         ${password}
    click element   xpath://*[@value="登录"]


验证用户登录失败场景,错误提示信息为
    [Arguments]     ${msg}
    ${result_text}=     get text    xpath://strong
    Should Be Equal     ${result_text}   ${msg

testcases/testusers/testloginddt.robot

*** Settings ***
Documentation       测试登录功能
Resource            ../basecase.robot
Resource            ../../pom/homepage.robot
Resource            ../../pom/loginpage.robot
Suite Setup         打开浏览器设置最大化并隐式等待时间为5s
Test Template       用户登录的异常场景测试
Suite Teardown      关闭浏览器

*** Test Cases ***          USERNAME        PASSWORD        EXPECT_MSG
使用错误的用户名和密码         fanmao123       123456          用户名或密码错误
使用空的用户名和密码        ${EMPTY}         123456          信息不完整。
使用用户名和空的密码          fanmao123       ${EMPTY}         信息不完整。
使用空的用户名和空的密码        ${EMPTY}         ${EMPTY}        信息不完整。

*** Keywords ***
用户登录的异常场景测试
    [Arguments]     ${username}     ${password}     ${expect_msg}
    点击登录到达登录页面
    使用用户名和密码进行登录    ${username}     ${password}
    验证用户登录失败场景,错误提示信息为      ${expect_msg}

需要注意的是:

当使用数据驱动的方式进行代码运行,数据驱动只能放到一个robot文件中。

添加tags 标签

  • settings 添加标签
    *** Settings ***
    Documentation       测试登录功能
    Resource            ../basecase.robot
    Resource            ../../pom/homepage.robot
    Resource            ../../pom/loginpage.robot
    Suite Setup         打开浏览器设置最大化并隐式等待时间为5s
    Test Template       用户登录的异常场景测试
    Suite Teardown      关闭浏览器
    Default Tags        ddt
    
    *** Test Cases ***          USERNAME        PASSWORD        EXPECT_MSG
    使用错误的用户名和密码         fanmao123       123456          用户名或密码错误
    使用空的用户名和密码        ${EMPTY}         123456          信息不完整。
    使用用户名和空的密码          fanmao123       ${EMPTY}         信息不完整。
    使用空的用户名和空的密码        ${EMPTY}         ${EMPTY}        信息不完整。
    
    *** Keywords ***
    用户登录的异常场景测试
        [Arguments]     ${username}     ${password}     ${expect_msg}
        点击登录到达登录页面
        使用用户名和密码进行登录    ${username}     ${password}
        验证用户登录失败场景,错误提示信息为      ${expect_msg}

 

在测试用例中添加

*** Settings ***
Documentation       测试登录功能
Resource            ../basecase.robot
Resource            ../../pom/homepage.robot
Resource            ../../pom/loginpage.robot
Suite Setup         打开浏览器设置最大化并隐式等待时间为5s
Suite Teardown      关闭浏览器
Default Tags      ci

*** Keywords ***
使用不同的用户名或密码登录
    [Arguments]         ${username}     ${passwd}
    点击登录到达登录页面
    使用用户名和密码进行登录    ${username}     ${passwd}

*** Test Cases ***
错误的用户名和错误的密码登录
    [Tags]      smoke
    使用不同的用户名或密码登录   fanmao-35   1234

空的用户名和错误的密码登录
    使用不同的用户名或密码登录   ${Empty}   1234

空的用户名和空的密码登录
    使用不同的用户名或密码登录   ${Empty}   ${empty}

用户名和空的密码登录
    使用不同的用户名或密码登录   fanmao_36   ${empty}

 

执行的时候使用

  • -i 表示包含标签的方式    robot -i tags testcases

posted @ 2023-02-09 01:22  我是小菜鸡丫丫  阅读(315)  评论(0编辑  收藏  举报