套件名称应该尽可能描述清楚。
套件名称会从文件名或目录名自动创建:
文件名的扩展名不会出现在套件名称中;
下划线会被转成空格;
如果套件名称都是小写字母,那么名称会自动转成首字母大写。
名称可以相对长一点,但是过长的话在文件系统中不方便。
如果需要的话,顶级套件的名称可以在命令行使用--name选项进行重写。
举例:
在文件系统中看到的是login_testsrobot,在RIDE中看到的是Login Tests
IP_v4_and_v6在RIDE中看到的是IP v4 and v6
发现此框架在测试接口上比soapUI好用的多,以下给大家分享以下我使用此框架测试API,直接介绍get方法的>
介绍 这篇文档将会是一篇在「高层面」的怎么用 Robotframework 来编写优秀测试用例的原则。至于如何使用 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==1741
升级指定包: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 377 + rf 312 + ride 1741 + wxpython 407post2
ps :ride 1x版本不支持Python 38及以上,ride 2x(开发中)支持Python 38
rf日志中文乱码解决方法:修改文件 python安装目录下 Libsite-packagesrobotidecontrib estrunner estrunnerpluginpy 第 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做UI自动化测试示例框架
UI自动化测试用例也写过一阵子了,这边给大家分享一套完整的UI自动化测试框架,还是很感谢同事的帮忙和教导
1、搭建UI自动化框架
框架主通过测试用例,元素定位,系统关键字,系统变量,行为导入这五个模块组成。具体详情请看截图。
2、测试用例当中比较重要的一个东西就是tags,tags标识着每一个用例,再做回归测试的时候就不会那么乱,并且后期维护起来也会比较方便。
1>Force Tags:在文件型Suite这里还可以继续给子元素增加Force Tags,但是他不能删除父元素设置的tags。
2>测试用例tags
3、测试用例编写
Robotframework可以通过setup和teardown可以避免冗余 *** 作,把登陆和关闭浏览器等 *** 作放在Suite固定执行,就不必在每个用例中都写入登陆和关闭浏览器等 *** 作。和python做自动化测试中setUp与tearDown的作用是一致,特别有意思。总感觉我对自动化测试的概念不是特别深入,还是需要不断尝试,学习当中。
4、页面中iframe嵌入HTML如何定位元素(番外)
这个算是这次总结的番外篇,之前都没怎么遇到比较复杂的元素,这次的项目包含iframe,百度了很久才解决了,如果遇到iframe中包含html,需要定位HTML中的元素,需要先进入iframe中,通过Select Frame *** 作即可。
select frame的用法如下:
示例如下:
以上就是关于怎么使用RobotFramework编写好的测试用例全部的内容,包括:怎么使用RobotFramework编写好的测试用例、robot framework怎么通过telnet登录测试、如何用 Robotframework 来编写优秀的测试用例等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)