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


    最近在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

  • 相关阅读:
    (转)MySQL中MyISAM引擎与InnoDB引擎性能简单测试
    (转)数据库水平切分的实现原理解析
    ECShop笔记(品牌类)
    ECShop笔记(通用类)
    (转)InnoDB的性能(zz)
    ECSHOP笔记(商品类 三)
    ECShop笔记(积分类)
    ECShop笔记(商品类)
    ECShop笔记(二)
    phpcms 点击排行榜的改进
  • 原文地址:https://www.cnblogs.com/Zfc-Cjk/p/8974228.html
Copyright © 2020-2023  润新知