RobotFramework 自动化框架环境搭建及使用

作者&投稿:邵师 (若有异议请与网页底部的电邮联系)
~

一、为什么要做自动化?

前提:主流程稳定,周期长,脚本可重复利用。

1.节省人力资源

2.提高效率

3.面试需要


二、什么是RobotFramework:

基于Python的关键字驱动的自动化框架。

1. 基于Python:就是由python语言开发的这个框架。

2.关键字驱动:关键字驱动测试又称为表格驱动测试,是自动化测试的一种方法,是数据测试的一种改进方法。关键字驱动主要包括测试步骤、测试步骤中的对象,测试对象执行的动作,测试对象需要的数据

3.自动化框架?:是应用于自动化测试,框架提供可重用的基础自动化测试平台,提供自动化测试执行和管理功能的组织架构。


三、pip的常用方法:

pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。

以下在win10_x64 cmd中操作:

安装:pip install 包名

eg:pip install robotframework

安装指定版本:pip install 包名==版本号

eg:pip install robotframework==1.7.4.1

升级指定包:pip install --upgrade 包名

eg:pip install --upgrade robotframework

卸载:pip uninstall 包名

eg:pip uninstall robotframework

搜索安装包:pip search 包名

eg:pip search robotframework

查看当前电脑上已经安装的包:pip list

查看当前电脑上可以升级的包:pip list -o


四、rf的安装:

安装RF自动化框架:pip install robotframework

安装RF自动化框架IDE:pip install robotframework-ride

安装wxpython(ride依赖wxpython):pip install wxpython

ps :实际上新版本pip在安装ride时会自动安装所需依赖,也就是wxpython

版本信息:Win10 x64 + Python 3.7.7 + rf 3.1.2 + ride 1.7.4.1 + wxpython 4.0.7.post2

ps :ride 1.x版本不支持Python 3.8及以上,ride 2.x(开发中)支持Python 3.8

rf日志中文乱码解决方法:修改文件 python安装目录下 Libsite-packagesrobotidecontrib estrunner estrunnerplugin.py 第 565 行,将 SYSTEM 改成 OUTPUT ,重启ride工具。


五、元素定位:

id :以百度搜索输入框为例

在RF中写法: id=kw

name :以百度搜索输入框为例

在RF中写法: name=wd

xpath :Xml Path Language

1. 绝对路径:从html根部逐级(从上至下)查找

/html/body/p[1]/p[1]/p[3]/p/p/form/span[1]/input

在RF中写法:xpath=/html/body/p[1]/p[1]/p[3]/p/p/form/span[1]/input


2.相对路径:根据节点的上下文进行查找

eg://p/form/span/input 这里是在html中找一个p,p里面包含一个form,form包含一个span,span包含一个input,找有这样一个四层的关系的input标签,要注意如果html中有多个符合这种层级关系的input,会默认选第一个,也就是说这种方式未必是完全准确的。

3. xpath相对定位我们还可以根据元素的属性来查找:

eg://p/form/span[1]/input[@type] 这里是找符合这样一个层级关系并且有'type'这个属性的input标签

在RF中写法:xpath=//p/form/span[1]/input[@type]

eg://p/form/span[1]/input[@type='submit'] 这里是找符合这样一个层级关系并且'type'这个属性的值为'submit'的input标签

在RF中写法:xpath=//p/form/span[1]/input[@type='submit']

eg://p/form/span[1]/input[contains(@type,'sub')] 这里是找符合这样一个层级关系并且'type'这个属性的值包含'sub'的input标签

在RF中写法:xpath=//p/form/span[1]/input[contains(@type,'sub')]

以上是根据属性,如果是下面这样的a标签,我们还可以根据链接文字来进行定位

点我

eg://a[contains(text(),'点我')] 这样就是找所有a标签并且文字为'点我'的元素了

在RF中写法:xpath=//a[contains(text(),'点我')]


小技巧:

Chrome-F12-Console 中根据Xpath寻找元素:使用 $x (""),引号中填写xpath路径,如$x("/html/body/p[1]/p[1]/p[3]/p/p/form/span[1]/input")


css:

id: 以百度搜索输入框为例

在RF中写法: css=#kw

class: 以百度搜索输入框为例

在RF中写法: css=.s_ipt

css根据属性定位

[id='kw'] 表示查找id值为'kw'的元素

[name^='w'] 表示查找name值为'k'开头的元素

[class$='ipt'] 表示查找class值为'ipt'结尾的元素

[autocomplete*='f'] 表示查找autocomplete值中包含'f'的元素

[id='kw'] [name^='w'] 表示查找id值为'kw'并且name值为'k'开头的元素

在RF中写法:css=[id='kw'] [name^='w']、css=[class$='ipt']、

css=[maxlength='255']、css=[autocomplete='off']

ps:id和class也是属性,只是在css中针对id和class多了一种简单的写法,如上面的

css=#kw、css=.s_ipt

css根据标签定位:

input

表示查找当前页面所有input标签

在RF中写法:css=input

a,input

表示查找当前页面所有a标签和input标签

在RF中写法:css=a,input

span input

表示查找span标签下的所有input标签,哪怕是span下下级的input

在RF中写法:css=span input

span>input

表示查找父元素为span标签的所有input标签,注意和span input的区别

在RF中写法:css=span>input

span+input

表示查找紧挨在span元素后的第一个input元素

在RF中写法:css=span+input

span~input

表示查找紧挨在span元素后的所有input元素

在RF中写法:css=span~input

ps :其实大家都知道,因为页面上只依靠标签定位的话重复的可能性太大了,所有我们可以采用 标签 + 属性 的方式来进行定位

例如 span>input[id='kw'][name^='w'] 意思是查找所有父标签为span的input标签,并且该标签中有属性id的值为kw且属性name的值为w开头

在RF中写法:css=span>input[id='kw'][name^='w']


小技巧:

Chrome-F12-Console 中根据css寻找单个元素:

使用 $ (""),引号中填写css选择器,如$("span>input[id='kw'][name^='w']")

Chrome-F12-Console 中根据css寻找多个元素:

使用 $ (""),引号中填写css选择器,如$("span>input[id='kw'][name^='w']")




为什么一些公司还在用robotframework
robotframe是一个测试框架它的测试基本高于单元测试,也就是说不需要使用Junit类似的java语言对Java写单元测试,到robot测试的层面已经是在测试,我们编写的JAVA代码逻辑是否正确,也就是说这个时候的java是具体的可执行的代码,你这个时候需要的只是由robot给定输入,之后校验Java的输出这个过程而已。

本地搭建robotframework + allure 遇到的问题
解压allure-robotframewdork-2.8.16.tar.gz,这里面有allure_listener.py这个文件,将其中的zip_longes替换成izip_longes,切记,一共替换两处,替换之后采用python setup.py install  安装,完成!至于用哪个版本,个人认为无所谓 友情提示:t1.robot仅仅用于简单的测试 需要的软件安装完成之后,开...

robotframe自动化测试好找工作吗
大学学科毕竟很多,关键还是看你自己擅长什么对什么感兴趣。反正要自己游刃有余的专业认真学,然后要有就业意识,现在的技术岗位行业相对于来说比较容易找工作,比如厨师行业,西点这些现在都是热门行业,工资高,工作内容相对于比较轻松,不加班。

robot frame怎么清除一下缓存
变化就对了,如果你向mysql中插入或者是更新数据bin-log日志就增加

求大神,robot frame 打开Firefox Open Browser,总是失败,报错见补充...
尊敬的用户,您好!很高兴为您答疑。这个问题暂时还真没有什么解决办法,因为robot frame的最新的版本也太老了,而火狐持续更新了这么久,太多调整了,不兼容几乎是必然的。希望我的回答对您有所帮助,如有疑问,欢迎继续咨询我们。

java.awt的类摘要
Robot 此类用于为测试自动化、自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件。 Scrollbar Scrollbar 类描述了一个滚动条,这是大家都很熟悉的用户界面对象。 ScrollPane 实现用于单个子组件的自动水平和\/或垂直滚动的容器类。 ScrollPaneAdjustable 此类表示 ScrollPane 的水平或垂直滚动条的状态...

rviz配置的保存与调用
当你使用rviz来查看urdf模型时,初次打开可能会遇到需要配置Fixed Frame和RobotModel的问题。每次关闭后,这些设置都需要重新调整,这无疑增加了重复性的工作量。为了解决这个问题,你需要在rviz的左上角找到"File"菜单,然后选择"Save Config As"选项,这样可以将当前的配置界面保存为一个rviz配置文件。这个...

robotstudio机器人和手爪坐标系不同怎么安装上
操作方法如下:1、根据查询今日头条资料,在RobotStudio中创建一个用户定义坐标系(UserFrame),并将其定位到机器人末端执行器的位置上。2、通过手动触发或自动完成一系列示教操作,记录手爪相对于所创建的机器人坐标系的位置和姿态信息。3、在RobotStudio中创建另一个用户定义坐标系,使其与已知的手爪...

Swing 破局:打造半透明窗口
}}首先 构造方法把一个reference保存到父的JFrame 然后调用updateBackground()方法 在这个方法中 我们可以利用java awt Robot类捕获到整个屏幕 并把捕获到的图像保存到一个定义了的放置背景的变量中 paintComponent()方法可以帮助我们获得窗口在屏幕上的绝对位置 并用刚刚得到的背景作为panel的背景图 同时...

柳_敬之是谁
ROBOT魂高达OO(BANDAI)系列机体监修FRAMEARMS(寿屋KOTOBUKIYA)-Framearchitecttype001-SA-16STYLET-三二式一型轰雷等2008年《武装神姬》第8弹EX武器套组Plus火器型MMS洁诺葛拉朵2007年《武装神姬》第4弹EX武器套组炮台型MMS芙朵布莱克访谈——关于《高达OO》商品监修柳:我在第一季是以模型为主,第二季则是经手...

城子河区15352666563: 如何使用robotframework实现自动化框架 -
明贩麦普: 建议使用selenium2library 试一下 如果安装了好了setuptool 可以直接到windows命令行安装easy_install pip pip安装好后用命令:pip install robotframework-selenium2library 安装selenium2library 都是在线安装 然后到ride里面导入selenium2library

城子河区15352666563: 想要另外一台电脑跑robot framework自动化,怎么做 -
明贩麦普: Pekka Kl??rck,作为Robot Framework的创建者和核心开发者,按照系统级别,介绍了几种不同的自动化测试方法的区别.一、记录回放的方式流行于商业工具之中,无需编程技能即可快速上手.然而这种方法相对脆弱,一旦UI变化测试就会受...

城子河区15352666563: Robot Framework作者建议怎么选择自动化测试框架 -
明贩麦普: 一、记录回放的方式流行于商业工具之中,无需编程技能即可快速上手.然而这种方法相对脆弱,一旦UI变化测试就会受到影响,分散的脚本不可重用且难以维护,而且系统在测试前必须可用(也就意味着无法使用A-TDD方法).因此这种方法...

城子河区15352666563: 怎样用robot framework来实现java gui自动化测试 -
明贩麦普: class CUIThread : public CWinThread { DECLARE_DYNCREATE(CUIThread) protected: CUIThread(); // protected constructor used by dynamic creation// Attributes public:

城子河区15352666563: robot framework 接口自动化测试 怎么使用cookie -
明贩麦普: Robot Framework是一种基于Python的可扩展关键字驱动自动化测试框架,通常用于端到端的可接收测试和可接收测试驱动的开发.可以用于测试声明涉及到多种技术和接口的分布式的,异构的应用系统.测试用例位于HTML或者TSV(以tab分隔值)文件,使用在测试库中实现的关键词来在测试中运行程序.因为Robot Framework 是灵活和可扩展的,所以它很合适用于测试具有多种接口的复杂软件:用户接口,命令行,web service,编程接口等.如果我的回答没帮助到您,请继续追问.

城子河区15352666563: robot framework和qtp的区别 -
明贩麦普: Robot Framework是一款python编写的功能自动化测试框架.具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行.主要用于轮次很多的验收测试和验收测试驱动开发(ATDD).[1] ...

城子河区15352666563: selenium和robotframework哪个更适合做自动化测试 -
明贩麦普: Selenium是一个用于Web应用程序测试的工具, 而Robotframework则不仅限于Web测试,所以哪个更适合取决于你的应用场景.

城子河区15352666563: 如何设置FTP的主动模式和被动模式 -
明贩麦普: 最近刚刚接触到RobotFramework,发现这个工具倒是可以满足我的要求,而且可以结合seleniumLibrary,用来做web的自动化测试相当不错.之前我也接触过selenium,不过感觉那个工具更贴近开发人员使用,有了robotFramework之后,感觉...

城子河区15352666563: Robot Framework写自动化用例怎么写选择下拉框,然后根据下拉框的值点击搜索的用例啊 -
明贩麦普: select from list by value

城子河区15352666563: robot framework只能做web自动化测试吗 -
明贩麦普: 你好 不是的 WEB |---cases(用例) |---keywords (存放关键字) |---resources (资源文件夹,主要存放case需要的附件之类的) |---global(存放一些必须的全局变量) |---locators(存放页面上一些固定的元素,进行统一管理) |---lib(当Python自带的库不能实现你需要的功能的时候,需要自己写一些库) |然后就是在WEB目录下放一些必要的脚本,用于定时跑case的驱动 望采纳

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网