一、简介
基于Python的关键字驱动的自动化框架。
1.基于Python:就是由python语言开发的这个框架。
2.关键字驱动:关键字驱动测试又称为表格驱动测试,是自动化测试的一种方法,是数据测试的一种改进方法。关键字驱动主要包括测试步骤、测试步骤中的对象,测试对象执行的动作,测试对象需要的数据
3.自动化框架:是应用于自动化测试,框架提供可重用的基础自动化测试平台,提供自动化测试执行和管理功能的组织架构。
二、特点
编写用例更方便,可以以robot,txt,html等格式
自动生成htm格式的测试报告(unittest:htmltestrunner,pytest:allure) 自带很多类库,支持很多扩展库
可以根据我们业务逻辑的需要自定义关键字(登录,下订单,上次下载数据进行判断比较)
支持非GUI方式运行,还可以和Jenkins持续集成,协同打包回验证BUG
三、搭建RF测试环境
1.保证python已经安装好
2.安装依赖库
python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple(使用清华镜像, 下载更快更稳定)
pip install robotframework==5.0 -i https://pypi.tuna.tsinghua.edu.cn/simple(建议用该版本号,新版本不稳定)
安装wxpython(ride依赖wxpython):pip install robotframework-ride==1.7.4.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
ps :实际上新版本pip在安装ride时会自动安装所需依赖,也就是wxpython,如果没有list出来,需要自个手动去安装一下
4.检查是否安装完成
pip list
四、运行
RF 是通过 RIDE 编辑器进行工作的,安装成功后,进入python目录执行命令“[PythonDir]\Scripts\ride.py”,就可以打开 RIDE 编辑器,如图 所示。
打开之后就可以进行创建测试项目,创建测试用例等操作,我以通过百度搜索bilibili网站,并判断进入的网站是bilibili而不是别的阿猫阿狗为例讲解步骤。
1.创建测试项目
选择菜单栏 File —>New Project,输入项目名称,选择 Directory type,选择目录。
2.创建测试套件
Name:给自动化测试工程命名 Parent Directory:默认是前一次工程的目录,根据实际需要进行设置。
Type:分为文件和目录两种。如果工程层级简单,File即可;内容较多较复杂层级较深选择目录。
Format:存储格式默认ROBOT即可,也可以选择其他,看自己需要。一般建议大家使用纯文本格式的,也就是ROBOT或TXT格式。
测试套是存放测试用例的文件,可以采用目录型或文件型存储,如果选择Directory,那么创建的是目录型测试套件,还可以在它下面继续创建测试子套件。
格式可以用robot、txt、tsv和html。 可以比较一下在RIDE里新建Project和Test
Suite的区别,其实本质上是一样的,RIDE里的Project就是最顶层的Test Suite(测试套)。 (Test
Case文件可以组织到目录中,这些目录可以创建更高级别的Test Suite。从目录创建的Test Suite不能直接包含任何Test
Case,但它包含其他带有Test Case的文件型Test
Suite。然后可以将这些目录放入其他目录中,从而创建更高级别的套件。结构没有限制,因此可以根据需要组织测试用例。)
3.选择测试套件bilibiliTest,并导包
PS:导入成功后,包名字体显示黑色。如果失败,显示红色
4.选择测试套件,右键创建测试用例bilibiliOpen
5.编写用例
6.执行用例,选中所要执行的用例,键盘敲击F8执行或者点击页面上的运行按钮执行
7.点击 report按钮,跳转到测试报告页面
五、报错解决
问题1:
NoSuchDriverException: Message: Unable to obtain driver for firefox using Selenium Manager.; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
意思大概是:selenium获取不到firefox的驱动
解决:
问题2:
FAIL : No keyword with name 'Open Browser' found.
解决:
测试suite那里没有添加Selenium2Library库