目前项目有这样 webUI 自动化这样一个需求,考虑到自己技术和精力有限,以及时间比较赶,所以做出一个简单的 webUI 自动化框架,目前用起来效果还可以,欢迎大家吐槽。。。
序号 | 安装包名 | 安装方法 | 下载地址 | 备注 |
---|---|---|---|---|
1 | python | exe 文件,直接双击安装 | https://www.python.org/download/releases/2.7.8/ | 安装路径不能有空格,在环境变量 PATH 中加上 Python 安装路径 |
2 | setuptools | 下载 ez_setup.py 文件,双击 | https://pypi.python.org/pypi/setuptools | Python 的套件管理程式,非必需,可以不装 |
3 | pip | 1.cmd 进入 ez_setup.py 文件目录 2.用 setuptools 安装:easy_install pip |
https://pip.pypa.io/en/latest/index.html | Python 的套件管理程式,在 PATH 最后添加 Python 的 Scripts 目录 |
4 | robot framework | pip install robotframework | https://pypi.python.org/pypi/robotframework | robot framework 本身 |
5 | wxPython | exe 文件,直接双击安装 | http://wxpython.org/download.php#stable | 支撑 Ride 的运行库,需要安装 2.8 的 |
6 | robotframework-ride | pip install robotframework-ride | https://pypi.python.org/pypi/robotframework-ride | Ride |
7 | selenium2library | pip install robotframework-selenium2library | https://pypi.python.org/pypi/robotframework-selenium2library | selenium2 测试库,基于 webdriver 驱动 |
8 | databaselibrary | pip install robotframework-databaselibrary | https://github.com/franz-see/Robotframework-Database-Library | DB 库 |
9 | requests | pip install requests | https://pypi.python.org/pypi/requests | RequestsLibrary 库 |
10 | RequestsLibrary | pip install -U robotframework-requests | https://github.com/bulkan/robotframework-requests | http request 库 |
11 | pyodbc | pip install pyodbc | https://pypi.python.org/pypi/pyodbc | python 的 odbc,解决中文乱码 |
12 | MySQL Connector | exe 文件,直接双击安装 | http://www.mysql.com/downloads/connector/odbc/ | Mysql 的驱动,可以不安装 |
用户管理
用户信息管理
的username_ipt
,得到id=username
登录页.csv
username_ipt,id,userName,用户名
等等运营平台.txt
登录到运营平台
并导入keyword
中相应的资源文件
登录到运营平台
${configs} 读取多个配置 url=platform url=admin
打开浏览器 ${configs[0]}
清空元素文本 登录页 username_ipt
输入文本 登录页 username_ipt ${username}
清空元素文本 登录页 password_ipt
输入密码 登录页 password_ipt ${password}
点击按钮 登录页 submit_btn
检查元素是否包含文本 账户平台首页 username_link ${username}
每次手动执行 robot 比较麻烦,利用 jenkins 每次从 git 上拉取最新的测试用例,保证项目的持续集成以及自动回归
0 0 * * *
#!/usr/bin/env bash
ROOT=$(cd `dirname $0`; pwd)
TIME=$(date +%Y-%m-%d_%H_%M_%S)
function if_error
{
if [ $1 -ne 0 ]
then
echo -e "\033[31mfailed!error code:$1\033[0m"
exit $1
else
echo -e "\033[32msuccess!\033[0m"
fi
}
function error
{
echo -e "\033[31m$@\033[0m"
exit 1
}
function success
{
echo -e "\033[32m$@\033[0m"
}
function dump
{
echo -e "\033[44m$1\033[0m"
}
dump "check connect..."
ping -c4 XX.XX.XX.XXX #服务器IP
if_error $?
dump "start run test..."
pybot -d report/$TIME $ROOT/suite
dump "start generate html report..."
if [ ! -d $ROOT/report/$TIME ];then
dump "not found report dir!"
exit -1
fi
python genLog.py report/$TIME/output.xml demo.html report/email.html
if_error $?