内容简介:python 3.6 + robotFramework自动化框架 环境搭建、学习笔记
################################################################# #author: 陈月白 #_blogs: http://www.cnblogs.com/chenyuebai/ #################################################################
一、环境搭建
概览:win 7+ python 3.6 + pycharm + robotframework + IntelliBot
1.安装相关的库
依次安装:
pip install robotframework
https://pypi.python.org/pypi/selenium/ #依赖包
https://pypi.python.org/pypi/robotframework-seleniumlibrary #依赖包
https://pypi.python.org/pypi/robotframework-selenium2library
2.pycharm
开发IDE, 略
3. IntelliBot pycharm开发插件【语法高亮】
方法1:pycharm>File>setting>Plugins>Browse reponsitories
方法2:https://plugins.jetbrains.com/plugin/7386-intellibot 下载至本地
pycharm>File>setting>Plugins>install plugin from disk
4.pycharm配置执行器
File>setting>Tools>External tool,配置完成后即可在.robot文件中选择使用该执行器执行
Parameters:当前文件路径
Working directory:工作路径,日志、结果输出等,如下:
注:log.html 执行日志
output.xml 执行相关信息的xml,可用于后续二次解析
report.xml 执行结果报表
二、使用cmd执行
运行一条用例:
pybot --test test_case test_suit.robot
运行指定文件:
pybot test_suit.robot
运行当前目录下以.robot为后缀名的测试文件
pybot *.robot
运行当前testpath目录下的所有用例
pybot testpath
三、案例脚本(.robot文件)基本语法
1.基本语法
*** Settings *** Library MyLib #导入自定义的库 Library Selenium2Library *** Test Cases *** #第一行为固定格式,标识 #建议同 python 一致,使用tab缩进对齐(pycharm中设置tab=4空格),否则可能报执行失败,报 "Test case contains no keywords" case1 helloworld #案例名 log chenyuebai first rfw case #log 相当于python的print,可在生成的log.xml中查看 case 2 log #打异常日志,支持多种级别 log test line 2 ERROR case 3 varible ${myname} Set variable chen #定义变量 log my name is ${myname} #使用变量 #case 4 use varible #变量作用域为其定义所在的案例(case3),否则报"Variable '${myname}' not found." # log ${myname} case 5 Catenate ${hi1} Catenate hello world #定义变量方式2 连接两个对象,支持自定义连接符 log ${hi1} ${hi2} Catenate SEPARATOR=---- hello world log ${hi2} case 6 list @{mylist} create list a b c #定义列表 log many @{mylist} #打印列表中的元素 case 7 get time ${currentTime} get time #获取当前时间 2018-01-02 18:05:47 log ${currentTime} ${currentYear} get time format=year #支持多种传参,详情看函数定义 log current year is ${currentYear} case 8 sleep log get time sleep 1 #睡眠,等同于python的time.sleep(5) log get time case 9 if ${score} set variable 55 run keyword if ${score}>=90 log 优秀 ... ELSE IF ${score}>=70 log 良好 #ELSE/ELSE IF要大写。。。语法很蛋疼。。为啥不直接套用python的语法。。 ... ELSE log 很差 # ... 不知道基于什么考虑的。。看起来像是标识属于“run keyword if”这个判断逻辑;类似python的tab? case 10 for #for循环,注意需要使用\来标识这个for循环范围,感觉和上面的...类似 :FOR ${i} IN RANGE 5 # for in in range(5): \ log ${i} # print(i) case 11 allround the list @{myList} create list 1 2 3 4 # myList = [1,2,3,4] :FOR ${i} IN @{myList} # for i in myList: \ log ${i} # print(i) case 12 Evauate #调用python中的方法,很强大 ${randomNum} EVALUATE random.random() random #变量 关键字EVALUATE 调用python的方法 方法所在的库名 log ${randomNum} case 13 call my python #导入自定义库,下面有详细说明 ${nowTime} get current time log ${nowTime} case 14 Comment log start #line 1 comment line 2 #标明注释:使用关键字或者#均可 log end case 15 Selenium2Library #Selenium2Library库,操作浏览器,可作web界面自动化,待细化 open_browser http://www.baidu.com firefox Input text id=kw 陈月白 click button id=su sleep 3 close Browser
2.robot文件中调用自定义库
Selenium2Library提供了很多的方法,但在实际使用中仍有部分场景需要自行编写,robotFramework支持导入用户自定义的库。
以我的目录结构为例:
(1)自定义方法所在的文件:MyRobotFrameworkLib.py
import time class MyRobotFrameworkLib(): def __init__(self): pass #获取当前时间 def get_current_time(self): current_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) return current_time
(2)创建MyLib.py
""" 继承自定义库中的类,rfw会解析类中的函数作为关键词 网上也有说此文件应命名为 __init__.py,但我试了,不行 .robot文件执行时报导入失败,看起来像是必须文件名和类名相同(当前是这么处理的) """ from MyRobotFrameworkLib import * class MyLib(MyRobotFrameworkLib): ROBOT_LIBRARY_SCOPE = "GLOBAL"
(3).robot文件导入自定义类、使用类中的方法
*** Settings *** Library MyLib #导入自定义的库 case 13 call my python ${nowTime} get current time log ${nowTime}
3.使用Selenium2Library进行web界面自动化测试
#todo
20180126
以上所述就是小编给大家介绍的《python 3.6 + robotFramework自动化框架 环境搭建、学习笔记》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
SEM修炼手册:百度竞价、信息流广告、数据分析与专题页策划实战详解
陈丰洲 / 电子工业出版社 / 2018-10 / 59.80元
SEM人员在职场打拼的过程中,会遇到一个又一个坑,《SEM修炼手册:百度竞价、信息流广告、数据分析与专题页策划实战详解》尝试站在一定的高度,将从业者从专员走向管理岗位过程中可能碰到的问题进行整理,不仅谈竞价推广,也谈基于SEM的营销体系。 《SEM修炼手册:百度竞价、信息流广告、数据分析与专题页策划实战详解》包括11章内容,由浅入深地分享SEM的进阶过程。第1章是SEM概述,让读者对SEM有......一起来看看 《SEM修炼手册:百度竞价、信息流广告、数据分析与专题页策划实战详解》 这本书的介绍吧!