您好,登录后才能下订单哦!
github上看到AutoMagic自动化平台开源了,一时手痒,就试着搭了一套环境,现在把思路和大家说一说。
AutoMagic从其工作分工分两部分:
管理平台基于Python Django框架+Mysql开发,主要用来管理自动化测试用例和设计自动化测试场景、存放界面元素标识,通过界面录入存放在数据库中进行管理,它是一个纯粹基于Selenium关键字自动化原件管理平台。
AutoMagic的执行效果展示主要靠它来体现,它的执行依附于web平台存储的用例和场景数据,seleniumkeyword可以不需要部署在服务器端,只要它能够连接到服务器端的数据库,部署在任何平台都可以执行。(方便分布式执行测试用例)
服务端:基于python,mysql-python,django环境下运行
客户端:基于python、selenium、 mysqldb 环境下运行,其它依赖包和插件根据说明文档要求进行安装。
TestSuite.py 测试用例执行脚本引擎是,它可以通过参数实现不同的执行方式
-t [taskid] 指定执行的AutoMagic任务
-u [userid] 指定执行脚本的用户
-r [runid] 执行测试用例脚本要同步的TestRailRunid,它只有在执行 -t 参数时才会生效。
-c [caseid] 指定要执行的单个用例的编号
-p [projectid] 指定要执行的项目id,会依次执行项目中所有模块和用例状态是启用的所有用例
-b [browser] 指定执行用例过程所使用浏览器,默认使用chrome浏览器,也可在执行case过程中通过openbrowser关键字重置
示例:
python TestSuite.py -t 1 -u tsbc -b chrome
zhufc用户在谷歌浏览器下启动id为1的测试任务
Base.py 是我们关键字维护脚本,class Action中重定义了python selenium的一些方法,其它部分均为自定义关键字。
AddCase.py 同步用例到TestRail到脚本,并连接平台端的mysql数据库
-t [taskid] 指定执行同步的AutoMagic任务
-u [userid] 指定执行脚本的用户
-s [sctionid] 执行同步case到TestRail的那个用例集(section_id代表所在用例集)
HTMLTestRunner.py 生成报告的脚本文件
RestApiUtil.py、RestApiUtil.py 是发包MW模拟安全事件和发送pcap发包接口
testrail.py TestRail的接口API
result目录为报告接口目录
data目录执行上传附件关键字时,附件存放目录
目录结构:
生成测试报告效果:
我是ubuntu环境,如果是centos环境,命令需要稍微调整、apt-get命令改成yum
apt-get install mysql-server
apt-get install mysql-client
sudo apt-get install libmysqlclient-dev
netstat -tap | grep mysql检查是否安装成功
mysql –uroot –pXXX 执行登录
在usr目录下新建python文件夹 :
cd /usr
mkdir python
apt-get update
apt-get install lrzsz
执行rz命令,将本地压缩包拖到python文件夹下
在主目录下执行 python setup.py sdist 生成安装包
cd dist
pip install automagic-0.1.tar.gz执行安装
apt-get install python-dev python基础依赖包
apt-get install python-pip 安装pip
pip install -U setuptools 升级setuptools
pip install django==1.11.1 安装基础diango
pip install MySQL-Python==1.2.3 安装mysql-python
pip install django-users2==0.2.1 依赖包
pip install django-cors-headers==2.0.2 依赖包
pip install djangorestframework==3.6.3 依赖包
pip install python-jenkins==0.4.14 依赖包
pip install selenium 依赖包
pip install requests 依赖包
pip install paramiko==2.1.2 依赖包
pip install scapy==2.3.3 依赖包
如果在apt-get install过程中出现404,那么执行apt-get update进行源升级
如果进程中出现E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?那么查看apt-get 进程,全部杀掉
ps -A | grep apt
sudo kill -9 XXX
进程中报mysql—config和libmysqlclient.so.18无法定位到,那么配置软链接
ln -s /usr/local/mysql/bin/mysql_config /usr/local/bin/mysql_config
ln-s/usr/local/mysql/lib/libmysqlclient.so.18/usr/lib/libmysqlclient.so.18
Cd /usr/python/automagic-dev/automated
Vi setting.py
修改数据库配置文件
Ps:这里的NAME是库名,需要在数据库中真实存在
/usr/local/mysql/bin/mysql -uroot -pXXXXX
grant all privileges on *.* to root@'%' identified by "XXXXX";
FLUSH PRIVILEGES;
cd automagic-dev
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
按照提示进行输入要创建的用户名、邮箱、密码(8位以上,字母、字符、数字的组合)
python manage.py runserver 0.0.0.0:8080
虚拟机执行:本机host:8080 访问平台
Automagic平台我已经进行了容器化,因此只需要在本地安装docker工具,即可下载镜像部署
sudo apt-get update
sudo apt-get install docker
registry.cn-hangzhou.aliyuncs.com/zhufc/automagic:django-automagic
docker run -d --name automagic -p 4406:3306 -p 8080:8080 registry.cn-hangzhou.aliyuncs.com/zhufc/automagic:django-automagic
3306数据库端口映射到4406;8080容器端口映射到虚拟机8080上,让外部访问
Docker ps –a 查看容器id
Docker exec –it d39c6648ebb0 bash 进入容器内部
Cd /usr/python/automagic-dev
Python manage.py runserver 0.0.0.0:8080 启动服务
出现端口正在使用,表示服务已经伴随容器自启动了,直接去平台用虚拟机ip访问即可
执行 ctrl+p+q ,退出但不停止容器
查看虚拟机ipifconfig
我的docker容器下已经部署了mysql服务并配置了跟随容器自启动,无需重启mysql。
关键词来源在seleniumkeyword下,也可以重定义。
python TestSuite.py -t 2 -u zhufc -b chrome 意思是在谷歌浏览器下执行任务编号2
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。