Robot Framework做UI自动化测试

这篇具有很好参考价值的文章主要介绍了Robot Framework做UI自动化测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Selenium2Library库安装与配置

selenium是一款用于Web应用程序测试的工具,它支持多平台、多语言、多浏览器去实现自动化测试。
针对robot framework的库有两个:SeleniumLibrary和Selenium2Library。SeleniumLibrary是针对Selenium1.0开发的,Selenium2Library是针对Selenium2.0开发的。我们直接安装Selenium2Library即可。

Selenium2Library库安装:
安装方式一:pip install robotframework-selenium2library==3.0.0 联网安装
pip install --upgrade robotframework-selenium2library --升级
pip uninstall robotframework-selenium2library --卸载

安装方式二:压缩包下载:下载地址https://pypi.python.org/pypi/robotframework-selenium2library然后解压,通过python setup.py install 安装

webdriver安装:
Windows操作系统把对应浏览器的driver.exe文件放置到放到/python27/scripts目录下即可。

浏览器操作API

Selenium2Library库中的关键字可以通过按F5,然后选择Source下拉框中的Selenium2Library库,即可查看所有Selenium2Library的关键字和帮助信息。

常用的关键字如下:
open browser:打开浏览器

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试
浏览器对应的关键字:
谷歌浏览器:chrome googlechrome gc
火狐浏览器:firefox ff
IE浏览器:ie internetexplorer

close browser:关闭当前浏览器

close all browsers:关闭所有浏览器和缓存重置

maximize browser window:浏览器最大化

set window size :设置浏览器宽、高

get window size :获取浏览器宽、高

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试
go back :浏览器进行回退操作

reload page:页面重新加载,即页面刷新操作

get title:获取当前浏览器窗口的标题

get location:获取当前URL

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试

元素识别工具与定位API

元素识别工具:

Firebug
Firebug是网页浏览器 Mozilla Firefox下的一款开发类插件,它集HTML查看和编辑、Javascript控制台、网络状况监视器于一体,是开发 JavaScript、CSS、HTML和Ajax的得力助手。
安装Firebug:
Mozilla Firefox菜单–附加组件–插件–搜索Firebug–安装–重启浏览器

chrome和IE的开发者工具
chrome 浏览器自带开发者工具,浏览器右上的小扳手,在下拉菜单中选择“工具”–“开发者工具” 即可打开,也可以使用快捷键Ctrl+Shift+I或者F12.

IE浏览器从IE8版本开始,加入了开发人员工具,通过菜单栏“工具”–“开发人员工具”或者通过快捷键F12即可打开。

元素定位API:
Selenium2Library提供了非常丰富的元素定位器,如下所示:

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试
示例:
用户名文本框

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试
百度新闻链接
新闻

1.通过id定位对象:robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试
2.通过name定位对象:

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试
3.通过link定位对象:
robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试
xpath定位:
xpath是一种在XML文档中定位元素的语言。因为HTML可以看作是XML的一种形式,selenium可使用这种强大语言在web应用中定位元素。Xpath有7种定位元素的方式:
1、通过绝对路径做定位
XPath的开头是一个斜线(/)代表这是绝对路径。
/html/body/div[3]/div[1]/div/div[3]/a[2]

2、通过相对路径做定位
如果开头是两个斜线(//)表示文件中所有符合模式的元素都会被选出来,即使是处于树中不同的层级也会被选出来。
//div[1]/div/div[3]/a

3、通过元素索引定位 ,索引的初始值为1
//div[3]/a[2] 定位文件中第2个a对象

4、使用属性定位
//a[@name=‘tj_trnews’]
//a[@name=‘tj_trnews’ and @class=‘mnav’]
//a[@name=‘tj_trnews’ or @class=‘mnav’]

5、使用部分属性值匹配
starts-with()
//a[starts-with(@name,‘tj_trnews’)]
ends-with()(XPath1.0中没有ends-with函数,2.0有,现在浏览器实现的都是1.0)
可以用如下代替:
//a[substring(@name,string-length(@name)-5)=‘trnews’]
contains()
//a[contains(@name,‘trnews’)]

6、使用任意属性值匹配元素
//[@=‘tj_trnews’]

7、使用xpath的text函数
//a[text()=‘新闻’]
//a[contians(text(),‘新闻’)]")) 包含(模糊)匹配

CssSelector定位:
CSS locator比XPath locator速度快,特别是在IE下面(IE没有自己的XPath 解析器(Parser))他比xpath更高效更准确更易编写,但根据页面文字时略有缺陷没有xpath直接。CssSelector有6种定位元素的方式:

1、使用绝对路径来定位元素。CSS绝对路径指的是在DOM结构中具体的位置,使用绝对路径来定位用户名输入字段,在使用绝对路径的时候,每个元素之间要有一个空格。
html body div div div div form span input
这种策略有一定的局限性,如果界面的布局改变了,那么可能就定位不到我们想要的元素了

2、 使用相对路径来定位元素
当使用CSS选择器来查找元素的时候,我们可以使用class属性来定位元素,我们可以先指定一个HTML的标签,然后加上一个”.”符合,跟上class属性的值
div a.mnav

3、定位下个节点:
div a.mnav + a
.mnav 找界面所有className为mnav的元素

4、列表选择具体的匹配
Selenium中的CSS选择器允许我们更细致的浏览列表下的元素,如图,我想选择第三行链接,可以用nth-of-type或者nth-child
div a[class=‘mnav’]:nth-of-type(3)
div a[class=‘mnav’]:nth-child(3)
robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试
5、 使用相对ID选择器来定位元素
可以使用元素的ID来定位元素,先指定一个HTML标签,然后加上一个”#”符号,跟上id的属性值
input#kw #kw
这种方法也是会找界面所有id=kw的元素,不一定能定位到我们要的元素上

6 、使用属性值选择器来定位元素
通过指定元素中属性值来定位元素
单属性:a[name=‘tj_trnews’]
多属性:a[name=‘tj_trnews’][class=‘mnav’]

7、部分属性值的匹配
CSS选择器提供了一个部分属性值匹配定位元素的方法,这为了测试那些页面上具有动态变化的属性的元素是非常有用的,例如界面技术EXTJS的id,className是动态变化的。
匹配前缀:^= 匹配后缀:$=
匹配字符串:*=
a[name^=‘tj_’][class=‘mnav’]

常用CSS定位语法如下:

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试

元素操作API

input text:输入文本
click button/click element:点击按钮/点击元素
sumbit form: 表单提交,要求对象必须是表单,或者为空
clear element text:清空元素内容

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试
get text:获取元素文本内容
get element attribute : 获取元素属性
get element size:获取元素尺寸

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试

设置等待相关API

为了保证脚本的稳定性,有时候需要引入等待时间,等待页面加载元素后再进行操作,robot framework提供多种等待时间设置方式。
固定时间等待:
sleep:固定时间等待

隐式等待:可以在一个时间范围内等待,且是识别元素的全局设置。
set browser implicit wait:隐式等待,针对当前浏览器生效
set selenium implicit wait:隐式等待,针对所有打开的浏览器都生效

显示等待:针对单一元素在时间范围内达到条件的等待,也有相应的否定用法
wait until element contains:直到元素包含指定的text才结束等待
wait until element is enabled:直到元素可以使用才结束等待
wait until element is visible:直到元素可见才结束等待

其它等待:也有相应的否定用法
wait until page contains:直到当前页面出现指定的text才结束等待
wait until page contains element:直到当前页面出现指定的元素才结束等待
wait for condition:当满足条件时结束等待,条件是带返回布尔值的js脚本

等待相关API写法示例:

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试

其它操作API

定位frame中的对象:
select frame:定位frame中的对象,进入到frame(表单),参数是id、name属性,或者是xpath识别元素的值。
unselect frame: 退出frame(表单)

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试
原生js弹窗(alert/confirm/prompt)的处理:
handle alert :操作原生弹窗并且可以返回弹窗的消息内容

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试
下拉框处理:
Select From List By Value:通过value属性去选择下拉框的值
Select From List By Index:通过索引去选择下拉框的值,索引从0开始
Select From List By Label:通过可见文本属性去选择下拉框的值

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试
执行Javascript脚本:
当robotframework遇到无法完成的操作时候,这个时候可以使用javascript来完成,robotframework提供了API来调用js代码执行。
Execute JavaScript:执行js脚本

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试
浏览器多窗口处理:
在进行自动化测试过程中,过程中会出现跳转到新窗口继续执行操作的情况,robotframework可以通过如下API处理:
Select window:跳转到指定窗口,参数可以是title、URL、handle、NEW、MAIN
其中NEW为最新打开的窗口、MAIN为回到主窗口
Get window Handles:获取所有窗口的句柄,返回一个list

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试

鼠标键盘事件API

鼠标键盘事件:
Mouse Down:模拟鼠标在指定的元素上按下鼠标左键
Mouse Up:模拟鼠标在指定的元素上释放鼠标左键
Mouse Over:模拟移动鼠标悬停在指定的元素上
Mouse Out:模拟移动鼠标远离指定的元素
Double Click Element:在指定的元素上进行双击操作
Press key:实现在元素上进行按键操作 ,参数可以 是单个字符、字符串、ascii码的值(作为参数需要加上 \)

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试

断言API

系统断言API:
should Be Empty:判断是否为空,如果是空,断言成功
Should Be Equal:判断是否相等,如果相等,断言成功
Should Be True:判断条件是否为真,如果条件为真,断言成功
Should Contain:判断是否包含,如果包含,断言成功

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试
Should Start With:判断字符串是否以指定的值开头,如果是,断言成功
Should End With:判断字符串是否以指定的值结尾,如果是,断言成功
length Should Be:判断对象的长度是否是指定值,如果是,断言成功
robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试

Selenium断言API:
Page Should Contain:页面是否包含指定的文本内容
Page Should Contain Element:页面是否包含指定的元素,相类似的还有Button、Checkbox、Image、Link、List、Radio Button、Textfield,如下图举例:

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试
备注:
Element\List\Textfield的元素定位信息必须写完整
其余可以只用写id、name等的值,不需要写定位的属性名
Limit参数表示元素出现的次数,none为默认,表示出现即可;如果是2,必须出现2次
Loglevel表示日志级别,共有4个选项:DEBUG, INFO (default), WARN和 NONE,如果
设置成WARN,只会打印WARN以及该级别以上的信息。

Element Should Contain:元素的text是否包含指定的内容(可以是部分内容)
Element Should Be Visible:判断元素是否可见,相类似的还有Focused(选中)、Enabled(启用)
Alert Should Be Present:是否出现弹出窗
Checkbox Should Be Selected:复选框是否已经被选中

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试

最后:下方这份完整的【自动化测试】学习教程已经整理上传完成,朋友们如果需要可以自行免费领取 【保证100%免费】

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试

robotframeworkui自动化,ui,自动化测试,软件测试,测试用例,接口测试文章来源地址https://www.toymoban.com/news/detail-757566.html

到了这里,关于Robot Framework做UI自动化测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jenkins+Robot 接口自动化测试

    目录 前言: 设计目标 项目说明 目录结构 配置 jenkins 1.安装插件 2.配置项目 Jenkins+Robot是一种常见的接口自动化测试方案

    2024年02月16日
    浏览(46)
  • 《共建开源》系列:Airtest-Framework - UI自动化框架系统

    Airtest- Framework 是 基于 unittest、Flask、Airtest 搭建的 开源的 UI 自动化框架系统 提供 HTTP API 接口,实现自动解析包名并自动执行 相应目录下的 Case 。 目前仅支持单台设备连接。 多个任务会自动排队处理。 Python = 3.8 1、下载项目: 2、进入项目目录: 3、安装依赖项 手机连接到

    2024年01月16日
    浏览(49)
  • 自动化测试系列 —— UI自动化测试

    UI 测试是一种测试类型,也称为用户界面测试,通过该测试,我们检查应用程序的界面是否工作正常或是否存在任何妨碍用户行为且不符合书面规格的 BUG。了解用户将如何在用户和网站之间进行交互以执行 UI 测试至关重要,通过执行 UI 测试,测试人员将尝试模仿用户的行为

    2024年02月10日
    浏览(50)
  • Python Selenium UI自动化测试_python 自动化ui测试

    2.2 安装selenium pip install selenium pip install selenium==2.53.0 2.3 下载webdriver驱动 以chrome浏览器为例 查看chrome浏览器版本:在地址栏输入 chrome://version chromedriver下载地址:http://chromedriver.storage.googleapis.com/index.html 下载与浏览器版本对应的chrome driver 将下载好的chrome driver 解压,并放至到

    2024年04月14日
    浏览(75)
  • 【Web UI自动化测试】Web UI自动化测试之框架篇(全网最全)

    本文大纲截图: UnitTest框架: PyTest框架: 框架: 框架英文单词 framework,为解决一类事情的功能的集合。需要按照框架的规定(套路)去书写代码。 概念:UnitTest是python自带的一个单元测试框架,用它来做单元测试 自带的框架:不需要单独按照,只要安装了 python就可以用

    2023年04月09日
    浏览(58)
  • 【Web UI自动化测试】Web UI自动化测试之日志收集篇(全网最全)

    本文大纲截图:   日志: 用于记录系统运行时的信息,对一个事件的记录,也称为 Log 。 日志作用: 1)调试程序 2)了解系统程序运行的情况是否正常 3)系统程序运行故障分析与问题定位 4)用来做用户行为分析和数据统计 日志级别: 日志级别:指日志信息的优先级、重

    2024年02月12日
    浏览(46)
  • UI自动化概念+Web自动化测试框架

    1.UI自动化测试概念:我们先明确什么是UI UI,即(User Interface简称UI用户界面)是系统和用户之间进行交互和信息交换的媒介 UI自动化测试: Web自动化测试和移动自动化测试都属于UI自动化测试,UI自动化测试就是借助自动化工具对程序UI层进行自动化的测试 2.为什么对UI采用自动化

    2024年02月06日
    浏览(78)
  • 【UI自动化测试技术】自动化测试研究:Python+Selenium+Pytest+Allure,详解UI自动化测试,学习模拟鼠标+模拟键盘进行相关操作(精)(四)

    1、了解元素交互的常用方法 2、学习如何对多选元素进行操作 3、 学习模拟鼠标进行相关操作 ( 本节目标 ) 4、 学习模拟键盘进行相关操作 ( 本节目标 ) 用于向 Web 浏览器提供虚拟化设备输入操作的低级接口.除了刚刚讲过的Web元素交互之外, Actions 接口 还提供了对指定输

    2024年03月24日
    浏览(89)
  • UI自动化概念 + Web自动化测试框架介绍

    UI,即(User Interface简称UI用户界面)是系统和用户之间进行交互和信息交换的媒介 UI自动化测试: Web自动化测试和移动自动化测试都属于UI自动化测试,UI自动化测试就是借助自动化工具对程序UI层进行自动化的测试 从不同的阶段或层次来说,自动化测试可以分为单元测试、接口

    2024年02月08日
    浏览(70)
  • Ui自动化概念+Web自动化测试框架介绍

    目录 UI 1.UI自动化测试概念:我们先明确什么是UI 2.为什么对UI采用自动化测试? 3.什么项目适合做UI自动化测试? 4.UI自动化测试介入时机 5.UI自动化测试所属分类 Web自动化测试框架介绍 2.Selenium框架介绍及特点: Web自动化测试环境搭建 2.元素定位(一) idclassname,tagname定位 link text与

    2023年04月21日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包