自动化测试框架:

自动化测试框架:

安装两个包
pip install robotframework
pip install --upgrade robotframework-seleniumlibrary

入门代码:

文件为.robot形式

*** Settings ***
Library     SeleniumLibrary

*** Test Cases ***
打开百度
    Open Browser    url=https://www.baidu.com/      browser=chrome
    Input Text      xpath://*[@id="kw"]                           helloworld

在命令中是使用 robot 命令执行

robot .\demo.robot

编写测试:

*** Settings ***
Library     SeleniumLibrary

*** Test Cases ***
正确输入用户名和信息
    Open Browser    url=http://localhost/ciircrm      browser=chrome
    Input Text      name:name    admin
    Input Password    name:password    admin
    Click Button    name:submit

关键字解读:

1.引用SeleniunLibrary库时初始化参数:

[timeout=5.0,implicit wait=0.0,run on failure=Capture Page Screenshot,screenshot root directory=None]

参数作用
Timeout等待时间(默认值:5秒)
run on failure失败自动截图
Screenshot root directory截取的网页图片存放路径 (None表示不指定路径 ,默认与输出文件同目录)

2.元素定位

定位语法:

以百度为例
1、定位策略:定位表达式(id:kw)
2、定位策略=定位表示的是(id=kw)

八大定位方法:

id、name、link_text、partial_link_text、xpath、css、class_name、tag_name(标签名)
定位策略匹配方式定位示例
idid属性id:kw
namename属性name:kw
identifierid或者name属性identifier:kw
classclass属性class:kw
tag元素标签名tag:div
xpathxpath定位表达式xpath://div[@id=“kw”]
csscss表达式css:div#kw
domdom表达式dom:document.images[1]
link精确匹配链接元素文本信息link:新闻
partial link部分匹配链接元素文本信息partial link:新
jqueryjQuery表达式Djquery:div.kw

3.浏览器和窗口操作关键字

关键字名称关键字说明
open browser打开浏览器并访问系统地址(url:网站地址,browser:浏览器类型)
close browse关闭浏览器
maximize browser window当前窗口最大化
get window size获取当前窗口的大小
set window size设置窗口大小
get window handles获取浏览器中,所有窗口的句柄
switch window切换窗口
get window names获取浏览器,所有窗口的名称
get window titles获取所有窗口的标题
get locations获取所有窗口的url

4、元素通用操作关键字

关键字名称关键字说明
click ement点击元素
input text在元素中输入文本值
get element attribute获取元素的某一个属性值
get element size获取元素的大小
get value获取元素的value属性值
get text获取元素的文本内容
clear element text清除元素的文本值
get webelement获取一个元素对象(WebElment对象)
get webelements获取匹配的所有元素对象(WebElment对象)
set focus to element元素获取焦点
double click element双击元素
scroll element into view滚动元素到可见区域
drag and drop将一个元素拖拽到另一个元素区域中
mouse over鼠标悬浮在元素上
press keys键盘按键操作

5、select/frame/alert/表格等操作关键字

关键字名称关键字说明
get list items获取所有的options选项
select from list by index根据下标来选择option选项
select from list by value根据value属性来选择option选项
select from list by label根据文本内容来选择option选项
select frame切换到指定的iframe当中
unselect frame退出iframe,切换到默认的html页面中
handle alert关闭alert弹出框
input text into alert输入文本到alert弹框中,并关闭alert弹出框
choose file在上传文件的输入框中(input元素的type为file)输入文本地址
get table cell获取表格的单元格值。行号和列号起始值为1.包含表头和表尾所对应的行

6、元素等待关键字

默认为5s

关键字名称关键字说明
wait for condition等待条件成立:条件为js表达式,表达式的结果要为布尔值
wait until element is visible等待指定的元素可见
wait until element is not visible等待指定的元素不可见
wait until element is enabled等待指定的元素可用
wait until element contains等待指定的元素 包含 指定的文本内容
wait until element does not contain等待指定的元素 不包含 指定的文本内容
wait until page contains element等待页面 包含指定的元素
wait until page contains element等待页面 不包含指定的元素
wait until page contains等待页面 包含指定的文本内容
wait until page does not contain等待页面 不包含指定的文本内容

7、断言关键字:

关键字名称关键字说明
page should contain element页面应当 包含指定的元素
page should not contain element页面应当 不包含指定的元素
locator should match x times元素定位表达式应该匹配 指定 次数
element should be visible指定的元素 应当可见
element should not be visible指定的元素 应当不可见
element should be enabled指定的元素 应当可用
element should be disabled指定的元素 应当不可用
element text should be指定元素的文本内容 应当是 指定内容
element text should not be指定元素的文本内容 应当不是 指定内容
element should be focused指定的元素 应当为焦点状态

8、截屏关键字:

关键字名称关键字说明
capture page screenshot截取当前页面图片
capture element screenshot截取指定元素的图片
set screenshot directory设置截图存储目录

9.补充说明

关键字名称关键字说明
Capture Element Screenshot Web元素截图并插入日志报告中
Checkbox Should Be Selected检查复选框选中
Checkbox Should Not Be Selected检查复选框未选中
Click Button按钮点击
Click Image单击图片
Close All Browsers关闭所以浏览器
Close Window关闭窗口
Confirm Action确认操作
Get Alert Message获取警报消息
Input Password输入密码
Reload Page重新加载页面
Switch Browser切换浏览器

模拟动作

登录页面并且添加用户信息

*** Settings ***
Library     SeleniumLibrary

*** Test Cases ***
正确输入用户名和信息
    Open Browser    url=http://localhost/ciircrm      browser=chrome
    Input Text      name:name    admin
    Input Password    name:password    admin
    Click Button    name:submit

添加用户
    Click Element    link:客户
    Click Element    link:新建客户
    Input Text    id:name    徐凤年
    Click Button    xpath://*[@id="form1"]/table/tfoot/tr/td/input[1]

使用变量

在本模板中使用${}的方式来设置和引用变量

*** Settings ***
Library     SeleniumLibrary

*** Variables ***
${url}      http://localhost/ciircrm
${username}     admin
${password}     admin
${addname}      王维
*** Test Cases ***
正确输入用户名和信息
    Open Browser    url=${url}      browser=chrome
    Input Text      name:name    ${username}
    Input Password    name:password    ${password}
    Click Button    name:submit

添加用户
    Click Element    link:客户
    Click Element    link:新建客户
    Input Text    id:name    ${addname} 
    Click Button    xpath://*[@id="form1"]/table/tfoot/tr/td/input[1]

自定义关键字

1、创建自定义关键字

在robot中可以将常用的操作放到关键字中去

主要语法

keywords

*** Settings ***
Library     SeleniumLibrary

*** Variables ***
${url}      http://localhost/ciircrm
${username}     admin
${password}     admin
${addname}      柳宗元

*** Keywords ***
正确登录页面
    Open Browser    url=${url}      browser=chrome
    Input Text      name:name    ${username}
    Input Password    name:password    ${password}
    Click Button    name:submit

*** Test Cases ***

正确输入用户名和信息
    Open Browser    url=${url}      browser=chrome
    Input Text      name:name    ${username}
    Input Password    name:password    ${password}
    Click Button    name:submit
    
添加用户
    正确登录页面
    Click Element    link:客户
    Click Element    link:新建客户
    Input Text    id:name    ${addname}
    Click Button    xpath://*[@id="form1"]/table/tfoot/tr/td/input[1]

2、创建带有参数的自定义关键字:

*** Settings ***
Library     SeleniumLibrary

*** Variables ***
${url}      http://localhost/ciircrm
${username}     admin
${password}     admin
${addname}      柳宗元
${title}        客户
${button}       新建客户
*** Keywords ***
正确登录页面
    Open Browser    url=${url}      browser=chrome
    Input Text      name:name    ${username}
    Input Password    name:password    ${password}
    Click Button    name:submit

添加相关客户信息
    [Arguments]     ${title}    ${button}   ${addname}
    Click Element    link:${title}
    Click Element    link:${button}
    Input Text    id:name    ${addname}
    Click Button    xpath://*[@id="form1"]/table/tfoot/tr/td/input[1]

*** Test Cases ***

正确输入用户名和信息
    Open Browser    url=${url}      browser=chrome
    Input Text      name:name    ${username}
    Input Password    name:password    ${password}
    Click Button    name:submit

添加用户
    正确登录页面
    添加相关客户信息    ${title}    ${button}    ${addname}

创建resource文件

useraction.resource

*** Settings ***
Documentation       用户注册登陆关键字
Library             SeleniumLibrary

*** Variables ***
${url}       http://localhost/ciircrm
${username}     admin
${password}     admin

*** Keywords ***
正确登录页面
    Open Browser    url=${url}      browser=chrome
    Input Text      name:name    ${username}
    Input Password    name:password    ${password}
    Click Button    name:submit

添加相关客户信息
    [Arguments]     ${title}    ${button}   ${addname}
    Click Element    link:${title}
    Click Element    link:${button}
    Input Text    id:name    ${addname}
    Click Button    xpath://*[@id="form1"]/table/tfoot/tr/td/input[1]

校验成功信息
    [Arguments]     ${massage}
    Element Text Should Be    locator=//div[contains(@class,'alert') and contains(@class,'alert-success')]   expected=${massage}
*** Settings ***
Library     SeleniumLibrary
Resource    ./keywords/useraction.resource

*** Variables ***
${url}      http://localhost/ciircrm
${username}     admin
${password}     admin
${addname}      王致和
${title}        客户
${button}       新建客户
*** Test Cases ***

正确输入用户名和信息
    Open Browser    url=${url}      browser=chrome
    Input Text      name:name    ${username}
    Input Password    name:password    ${password}
    Click Button    name:submit
    Close All Browsers

添加用户
    正确登录页面
    添加相关客户信息    ${title}    ${button}    ${addname}
    校验成功信息    $massage = × 添加客户成功
    Close All Browsers

执行脚手架

● Suite Setup   整个测试套件执行之前的操作
● Suite Teardown  整个测试套件执行之后的操作
● Test Setup   每个测试用例执行之前的操作
● Test Teardown   每个测试用例 执行之后的操作

resource文件

*** Settings ***
Documentation       用户注册登陆关键字
Library             SeleniumLibrary

*** Variables ***
${url}       http://localhost/ciircrm
${username}     admin
${password}     admin

*** Keywords ***
添加相关客户信息
    [Arguments]     ${title}    ${button}   ${addname}
    Click Element    link:${title}
    Click Element    link:${button}
    Input Text    id:name    ${addname}
    Click Button    xpath://*[@id="form1"]/table/tfoot/tr/td/input[1]

校验成功信息
    [Arguments]     ${massage}
    Element Text Should Be    locator=//div[contains(@class,'alert') and contains(@class,'alert-success')]   expected=${massage}

关闭浏览器
    Close All Browsers

屏幕截图
    Capture Page Screenshot

打开浏览器并导航到网页
    Open Browser    url=${url}      browser=chrome
    Input Text      name:name    ${username}
    Input Password    name:password    ${password}
    Click Button    name:submit
*** Settings ***
Library     SeleniumLibrary
Resource    ./keywords/useraction.resource
Suite Setup         打开浏览器并导航到网页
Suite Teardown      关闭浏览器
Test Setup          屏幕截图
Test Teardown       屏幕截图

*** Variables ***
${url}      http://localhost/ciircrm
${username}     admin
${password}     admin
${addname}      高俅
${title}        客户
${button}       新建客户
*** Test Cases ***
添加用户
    添加相关客户信息    ${title}    ${button}    ${addname}
    校验成功信息    $massage = × 添加客户成功
    Close All Browsers

使用python定义关键字

.py

import os
import time

class CustomerLib:
    def get_screenshots_path(self):
        root_dir = os.path.dirname(os.path.dirname(__file__))
        screenshots = os.path.join(root_dir, "screenshots")
        if not os.path.exists(screenshots):
            os.mkdir(screenshots)
            y_m = time.strftime("%Y_%m")
            ym_dir = os.path.join(screenshots, y_m)
            if not os.path.exists(ym_dir):
                os.mkdir(ym_dir)
                return ym_dir

            if __name__ == '__main__':
                cm = CustomerLib()
                dir = cm.get_screenshots_path()

    print(dir)

.resource

*** Settings ***
Documentation       用户注册登陆关键字
Library             SeleniumLibrary
Library             ../lib/CustomerLib.py
Library     ../lib/massage.py
*** Variables ***
${url}       http://localhost/ciircrm
${username}     admin
${password}     admin

*** Keywords ***
添加相关客户信息
    [Arguments]     ${title}    ${button}   ${addname}
    Click Element    link:${title}
    Click Element    link:${button}
    Input Text    id:name    ${addname}
    Click Button    xpath://*[@id="form1"]/table/tfoot/tr/td/input[1]

校验成功信息
    [Arguments]     ${massage}
    Element Text Should Be    locator=//div[contains(@class,'alert') and contains(@class,'alert-success')]   expected=${massage}

关闭浏览器
    Close All Browsers

屏幕截图
    ${pngdir}=  Get Screenshots Path
    Set Screenshot Directory    path=${pngdir}
    Capture Page Screenshot

打开浏览器并导航到网页
    Open Browser    url=${url}      browser=chrome
    Input Text      name:name    ${username}
    Input Password    name:password    ${password}
    Click Button    name:submit

.robot

*** Settings ***
Library     SeleniumLibrary
Resource    ./keywords/useraction.resource
Library     ./lib/massage.py
Suite Setup         打开浏览器并导航到网页
Suite Teardown      关闭浏览器
Test Setup          屏幕截图
Test Teardown       屏幕截图

*** Variables ***
${url}      http://localhost/ciircrm
${username}     admin
${password}     admin
${addname}      康有为
${title}        客户
${button}       新建客户
*** Test Cases ***
添加用户
    添加相关客户信息    ${title}    ${button}    ${addname}
    校验成功信息    $massage = '添加客户成功'
    Log    $massage
    Close All Browsers
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值