AutoMagic-开源自动化平台构建思路

article/2025/9/18 6:08:02

 

 

最近在github上看到AutoMagic自动化平台开源了,一时手痒,就试着搭了一套环境,现在把思路和大家说一说。

AutoMagic从其工作分工分两部分:

 1Web端管理平台

管理平台基于Python Django框架+Mysql开发,主要用来管理自动化测试用例和设计自动化测试场景、存放界面元素标识,通过界面录入存放在数据库中进行管理,它是一个纯粹基于Selenium关键字自动化原件管理平台。

 

2:客户端执行脚本(seleniumkeyword)

AutoMagic的执行效果展示主要靠它来体现,它的执行依附于web平台存储的用例和场景数据,seleniumkeyword可以不需要部署在服务器端,只要它能够连接到服务器端的数据库,部署在任何平台都可以执行。(方便分布式执行测试用例)

 

2.1:客户端安装运行环境

服务端:基于python,mysql-python,django环境下运行

客户端:基于python、selenium、 mysqldb 环境下运行,其它依赖包和插件根据说明文档要求进行安装。

2.2:客户端目录脚本说明

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的一些方法,其它部分均为自定义关键字。

 

 

 龙渊阁测试开发家园: 317765580

AddCase.py 同步用例到TestRail到脚本,并连接平台端的mysql数据库

-t [taskid] 指定执行同步的AutoMagic任务

-u [userid] 指定执行脚本的用户

-s [sctionid] 执行同步case到TestRail的那个用例集(section_id代表所在用例集)

 

HTMLTestRunner.py 生成报告的脚本文件

RestApiUtil.pyRestApiUtil.py 是发包MW模拟安全事件和发送pcap发包接口

testrail.py TestRail的接口API

result目录为报告接口目录

data目录执行上传附件关键字时,附件存放目录

目录结构:

生成测试报告效果:

 

 

二:部署方案

方案一 传统部署

1:服务器端部署

我是ubuntu环境,如果是centos环境,命令需要稍微调整、apt-get命令改成yum

1.1:安装mysql服务

  apt-get install mysql-server

  apt-get install mysql-client

   sudo apt-get install libmysqlclient-dev

  netstat -tap | grep mysql检查是否安装成功

  mysql –uroot –pXXX 执行登录

1.1:生成基础安装包

在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执行安装

1.2:安装 django 依赖包 

         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 依赖包

1.3:安装seleniumkeyword依赖包

         pip install selenium 依赖包

         pip install requests 依赖包

         pip install paramiko==2.1.2  依赖包

         pip install scapy==2.3.3  依赖包

1.4:异常处理

如果在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

 

1:5:配置mysql连接

         Cd /usr/python/automagic-dev/automated

    Vi setting.py

         修改数据库配置文件

Ps:这里的NAME是库名,需要在数据库中真实存在

1.6:mysql用户组ip分配

         /usr/local/mysql/bin/mysql -uroot -pXXXXX

         grant all privileges  on *.* to root@'%' identified by "XXXXX";

         FLUSH PRIVILEGES;

1.7:数据库初始化

         cd automagic-dev

         python manage.py makemigrations

    python manage.py migrate

1.8:创建管理员

         python manage.py createsuperuser

  按照提示进行输入要创建的用户名、邮箱、密码(8位以上,字母、字符、数字的组合)

1.9:启动服务

  python manage.py runserver 0.0.0.0:8080

  虚拟机执行:本机host:8080 访问平台

2:pc端部署

       2.1:安装python2.7
       2.2:安装setuptooles
       2.3:pip install selenium
       2.4:pip install  MySQL_python‑1.2.5‑cp27‑none‑win_amd64.whl
  2.5:pip install mysql-python
  2.6:配置mysqldb

 

 

 

方案二 docker环境部署

Automagic平台我已经进行了容器化,因此只需要在本地安装docker工具,即可下载镜像部署

1:服务器下安装docker

  sudo apt-get update

  sudo apt-get install docker

2:下载镜像(镜像暂未公开,需要的加群获取)

  registry.cn-hangzhou.aliyuncs.com/zhufc/automagic:django-automagic

3:基于镜像构建容器

  docker run -d --name automagic -p 4406:3306 -p 8080:8080 registry.cn-hangzhou.aliyuncs.com/zhufc/automagic:django-automagic

  3306数据库端口映射到4406;8080容器端口映射到虚拟机8080上,让外部访问

4:进入容器

  Docker ps –a 查看容器id

  Docker exec –it d39c6648ebb0 bash 进入容器内部

5:进入automagic目录下启动自动化平台

  Cd /usr/python/automagic-dev

  Python manage.py runserver 0.0.0.0:8080 启动服务

 

出现端口正在使用,表示服务已经伴随容器自启动了,直接去平台用虚拟机ip访问即可

执行 ctrl+p+q ,退出但不停止容器

查看虚拟机ipifconfig

6:页面执行 localhost:8080启动服务。

7:注意事项

我的docker容器下已经部署了mysql服务并配置了跟随容器自启动,无需重启mysql。

三:平台基本使用

1:创建产品

2:点击产品名称,创建项目

3:点击项目名称创建模块

4:点击用户管理下的关联产品,将产品与用户挂钩

5:功能测试下添加关键词

关键词来源在seleniumkeyword下,也可以重定义。

 

6:添加用例,填写关键词,定位元素或者输入文本

7:填写定位方式和定位标识

8:创建任务,勾选用例

9:seleniumkeyword目录下执行脚本命令 ,注意任务编号

python TestSuite.py -t 2 -u zhufc -b chrome  意思是在谷歌浏览器下执行任务编号2

10:查看运行结果

11:在用例下查看详情可以看到详细的运行过程和debug日志

12:在result目录下可以查看详细的运行报告和日志文件

注:部署过程中会涉及到一些第三方包和异常的处理,如果有需要帮助的请联系我!

 获取更详细资料,加入我们吧!QQ群:317765580

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/Zfc-Cjk/p/8974228.html


http://chatgpt.dhexx.cn/article/5r4iLJrJ.shtml

相关文章

VMware中卸载Ubuntu

1、右键>>管理>>从磁盘中删除 2、点击“是”,磁盘路径安装Ubuntu的文件一并删除

Ubuntu系统的卸载与安装

Ubuntu系统的卸载与安装 卸载 如果要重装Ubuntu系统,在重装之前需要先把原来系统进行删除,并且删除引导向 具体步骤参考:https://blog.csdn.net/Spacegene/article/details/86659349 用管理员权限打开记事本:https://zhidao.bai…

Ubuntu 22.04 双系统安装和卸载

前言: 一,为什么选择Ubuntu系统? 1.免费且提供长期系统维护支持;2.是主流的Linux服务器发行版; 3.强大的Shell;4.简洁好看的图形化UI界面;5.丰富的软件支持; 二,如何联系我&…

3种方法来卸载Ubuntu软件

1 使用Synaptic软件包管理器进行卸载 1 打开软件包管理器。Ubuntu自带了一个GUI(Graphical User Interface,图形化用户界面)软件包管理器,它可以让你在一个可视化窗口中卸载程序。如果你不习惯使用命令行,这一工具将非…

在Win10和Ubuntu双系统下卸载Ubuntu系统的方法

一、清除Ubuntu系统 删除Ubuntu系统使用的几个分区(包括EFI分区),注意不要删除Windows的EFI分区;如果不确定Ubuntu相关分区,可以通过[WindowsX]选择磁盘管理,通过分区大小进行对比判断。 二、删除开启引导启动项 删除了Ubuntu系…

电脑双系统完美卸载Ubuntu

【由于自己经常在Ubuntu下跑各种包,经常遇到依赖项不兼容问题,所以有时需要卸载重装Ubnutu系统,故写下此文以备查阅;本文是在多次卸载经验后摸索出来的方法,可以在不影响Windows系统下成功的完成Ubuntu系统的卸载】 1…

Windows+Ubuntu双系统下卸载Ubuntu

记录一下自己卸载Ubuntu的步骤,防止以后再卸载重新找教程。 1.删除Ubuntu的分区 步骤1:打开 “ 我的电脑 ”,选择 “ 管理 ”,点击 “ 磁盘管理 ”。 步骤2:确定Ubuntu系统所在的磁盘分区(我的是磁盘1的磁…

卸载ubuntu系统简单实用

删除EFI分区部分主要参考博客https://blog.csdn.net/mtllyb/article/details/78635757 因为我最近需要更新ubuntu系统,参考了好多教程,感觉还是很麻烦的,我就是直接删除了ubuntu的系统分区,因为我对ubuntu系统的具体结构也不是很了解,不知道会不会有什么隐患.不过我更新ubuntu…

UBUNTU卸载重装

卸载 (该部分修改自(1条消息) 在win10Ubuntu双系统下,完美卸载Ubuntu_guikunchen的博客-CSDN博客_卸载ubuntu) 打开磁盘管理,直接右键将ubuntu相关分区删除掉,删除掉之后,会标示为未分配。(上述…

win10+Ubuntu双系统下,完美卸载Ubuntu

1 背景 win10与Ubuntu16.04均为UEFI分区。 2 清除ubuntu系统 使用软件:diskgenius   删除Ubuntu系统使用的几个分区(包括EFI分区),注意不要删除Windows的EFI分区。 若不确定Ubuntu相关分区,可通过【WindowsX】 选择…

win11卸载Ubuntu 20.04 WSL

Ubuntu 20.04 LTS可以通过Microsoft Store进行安装,但是不能通过Microsoft Store卸载。现列举两种卸载方式。 通过应用与功能卸载 1、查找到安装的ubuntu 2、卸载 通过Windows终端卸载 1、查看当前环境安装的wsl wsl --list2、注销(卸载&#xf…

在win10+Ubuntu双系统下,完美卸载Ubuntu

背景 机器:惠普 暗影精灵3 win10与Ubuntu16.04均为UEFI分区 清除ubuntu系统 使用软件:diskgenius   删除Ubuntu系统使用的几个分区(包括EFI分区),注意不要删除Windows的EFI分区 若不确定Ubuntu相关分区&#xff0…

windows下Ubuntu卸载

简单记录下Ubuntu卸载步骤 清除/home、/ 等分区 直接打开磁盘管理,选择要删除的分区点击删除卷即可 清除EFI分区 winr 输入diskpart 输入‘list disk’查看磁盘信息 我ubuntu装在磁盘1上,所以我输入‘select disk 1 ’选择磁盘一 输入list partti…

Linux(四):虚拟机Ubuntu 卸载

Linux(四):虚拟机Ubuntu 卸载 1.打开虚拟机程序进入主窗口,选中要删除的虚拟机操作系统。 2.选中 VMware 软件最上方的 “虚拟机”—“管理”—“从磁盘中删除” 选项即可卸载该虚拟机操作系统。 3.提示警告点击“确定”&#x…

如何科学卸载ubuntu20.04

ubuntu很早以前就让我整坏了,一直想卸载掉它,可是一直不敢卸载,怕把Windows也给整坏,今天终于抽时间把它卸了。 安装方式就不在这里说了,想看的话可以参考我以前的博客: https://blog.csdn.net/weixin_6252…

ubuntu系统(十):卸载Ubuntu系统详细步骤

目录 1、前言 2、步骤一:在Ubuntu16.04系统下查看分区 3、步骤二:在win10中删除ubuntu系统的分区 4、删除win10启动项中ubuntu系统的启动项 1、前言 因为自己把Ubuntu16.04搞崩了,想重装一个Ubuntu16.04,于是需要卸载/删除原来…

Ubuntu卸载

该机器是UEFI引导的WIN10Ubuntu18.04双磁盘双系统,在WIN10已存在的情况下安装的Ubuntu。 总共分三步:1、删ubuntu对应的分区。2、删对应的引导文件。3、用引导管理工具删除对应引导 现记录卸载过程。 系统的磁盘分区,红色圈起来的是Ubuntu安装…

如何完全卸载Ubuntu,如何完全删除Ubuntu启动项,三种方法

前言 Ubuntu的卸载也需要方法,不能乱卸载,但是很多人卸载之后,Ubuntu的启动项还是存在,试了很多方法都不管用,我这里有三种方法,如果前两种不行可以试试第三种,前两种大家可能都见过&#xff0…

CVPR 2021 | 基于模型的图像风格迁移

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 作者:侯云钟 | 已授权转载(源:知乎) https://zhuanlan.zhihu.com/p/371101640 本文从另外一个角度解读,澳洲国立大学郑良老师实验…

风格迁移简介

1. 神经风格迁移之前的风格迁移方法 1) 基于笔划的渲染(Stroke-based rendering SBR) 基于笔划的渲染是指在数字画布上增加虚拟笔划以渲染具有特定样式的图片的方法。应用场景大多限定在油画、水彩、草图等,不够灵活。 2&#xf…