安装robot_framework
1. 安装Anaconda
2. 安装robotframework(命令:pip install robotframework)(将..\Python27\Scripts加入环境变量)
3. 安装robotframework-selenium2library(命令:pip install robotframework-selenium2library)(web端ui自动化测试所必需)
4.安装cx_Oracle模块(下载模块安装,注意系统版本和python版本)(连接Oracle数据库所必需)
5.将instantclient_11_1文件拷贝至..\Lib\site-packages文件夹下,并将目录加入环境变量。
6.安装wxPython2.8-win32-unicode-2.8.12.1-py27.exe
7.安装ride:执行pip install robotframework-ride==1.5.2.1
wxPyhthon是用于支持python图形化界面的,安装他主要是用来运行ride的
ride是一个可视化图形界面工具,专用于大家编写测试案例
ride界面介绍:
一、变量赋值:
set赋值
-
get赋值:主要用于返回值上,包括系统关键字的返回值和用户关键字的返回值
-
命令行赋值:运行时使用‘-v’的参数来给变量赋值,比如在案例中加上打印${aaaa}变量日志的脚本
二、变量使用
1.判断中使用
2.字符串中使用
①字符串连接
②字符串截取
③参与运算【运算关键字:Evaluate】
Evaluate可以想到eval函数
注:这个关键字作用很大,它实际是将后面的表达式房放到Python里运行,万能的Evaluate
三、二维List
四、变量转换
1.列表List转Scalar变量
2.Scalar变量转列表List
五、用户自定义关键字user keyword
1.必填参数
2.选填参数
-
列表List参数
注意:如果第三个参数传值了,那么即时第二个有默认值了,也要传值
因为后面传值了,那么默认前面的参数也会被认为传值了,即使什么也不写,它也认为是传了空值
六、Return Value 返回值
七、循环
1.IN RANGE
2.IN
使用log的时候最好使用$打印变量,因为$就是打印字符串的
八、web自动化测试
Selenium2Library常用的关键字
简单案例
- 打开谷歌浏览器,进入百度首页
- 等待2秒(不留时间可能会因为网速问题导致定位元素失败)
- 往输入框中输入电脑
- 点击百度按钮
- 等待2秒
- 关闭浏览器
获取新的窗口【关键字】
注意:
1.循环体内的使用old_handles列表要使用$符号,使用@符号会报错
2.要使用List Should Not Contains Value要引入Library【Collections】
九、DatabaseLibrary
安装databaselibrary pip install robotframework-databaselibrary
[ WARN ] Automatically parsing other than '*.robot' files is deprecated. Convert '***Testsuit_web.txt' to '*.robot' format or use '--extension' to explicitly configure which files to parse.
这个是让我把txt的格式改为.robot的格式
引得包如下:
右键测试套件修改格式:
有报错报红的时候可以:Tools / View RIDE Log 下查看详细的失败日志
连接Oracle数据库
2019年8月26日11:48:28
AutoItLibrary报错1
安装好了AutoItLibrary,但是导入到RIDE后,仍然红色显示,并在cmd窗口内输出如下错误信息:
Initializing test library 'AutoItLibrary' with no arguments failed: com_error: (-2147221005, '\xce\xde\xd0\xa7\xb5\xc4\xc0\xe0\xd7\xd6\xb7\xfb\xb4\xae', None, None)
或者提示错误信息:
Creating an instance of the test library'AutoItLibrary' with no arguments failed: com_error: (-2147221164,'\xc3\xbb\xd3\xd0\xd7\xa2\xb2\xe1\xc0\xe0', None, None)
1.可能使用扩展库版本不对 卸载重新安装1.1版本
2.你的操作系统是64位的话,还有安装一下AutoIt,不是AutoItLibrary.
下载地址:https://www.autoitscript.com/site/autoit/downloads/
主要因为AutoItLibrary里面带的dll是32位的,无法在64位操作系统上使用,只能安装官方的AutoIt,让他的dll生效,这样就能在64位操作系统上使用了。
明明页面上有那个id值,而且class也有,不管使用id还是class,xpath,css等任何一种方式都无法定位到元素,搞了半天终于明白了。
原因是页面还没有加载出来(加载完成),下面的用例就执行了,所以找不到。
解决办法:在上面加了sleep | 5s,让其休眠5秒,然后再去找那个元素,问题就解决了
SQL INSERT INTO SELECT 语法
我们可以从一个表中复制所有的列插入到另一个已存在的表中:
INSERT INTO table2
SELECT * FROM table1;
或者我们可以只复制希望的列插入到另一个已存在的表中:
INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;