精华内容
下载资源
问答
  • DevOps 自动化工具

    2019-04-30 12:28:57
    DevOps 自动化工具 所有测试流程自动化并对其进行配置以实现至关重要的速度和灵活性。此过程称为 DevOps 自动化。 维护庞大的IT基础架构的大型 DevOps 团队面临的困难可以简要分为六个不同的类别。 基础设施自动...

    DevOps 自动化工具

    所有测试流程自动化并对其进行配置以实现至关重要的速度和灵活性。此过程称为 DevOps 自动化。

    维护庞大的IT基础架构的大型 DevOps 团队面临的困难可以简要分为六个不同的类别。

    1. 基础设施自动化
    2. 配置管理
    3. 部署自动化
    4. 性能管理
    5. 日志管理
    6. 监测

    让我们看看每个类别中的工具以及它们如何解决痛点:

    基础设施自动化

    亚马逊网络服务(AWS):作为云服务,您无需建立实际的数据中心。此外,它们易于按需扩展。没有前期硬件成本。它可以配置为自动根据流量配置更多服务器。

    配置管理

    Chef:它是一个有用的 DevOps 工具,用于提升速度,规模和一致性。它可用于简化复杂任务并执行配置管理。使用此工具,DevOps 团队可以避免在一万台服务器上进行更改。相反,只需要在一个地方进行更改,这些更改会自动反映在其他服务器中。

    部署自动化

    Jenkins:该工具有助于持续集成和测试。通过在部署构建后快速查找问题,更​​轻松地集成项目更改。

    日志管理

    Splunk:可以解决在一个地方聚合,存储和分析所有日志的问题的工具。

    性能管理

    App Dynamic:它是一个 DevOps 工具,提供实时性能监控。此工具收集的数据可帮助开发人员在发生问题时进行调试。

    监控

    Nagios:在基础架构和相关服务出现故障时通知相关人员也很重要。Nagios 就是这样一种工具,它可以帮助 DevOps 团队找到并纠正问题。

    展开全文
  • DevOps自动化测试

    2021-02-24 16:10:16
    本文讲的是DevOps自动化测试DevOps概念从2009年提出已有近8个年头,每个人对DevOps的理解可能都不完全一样,下面是普元对DevOps的理解和定义。我们认为DevOps不仅需要打通开发运维之间的部门墙,更多的需要从...
  • DevOps自动化工具集合

    2019-02-15 19:10:04
    版本控制&协作开发:GitHub、GitLab、BitBucket、...自动化构建和测试:Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit 持续集成&交付:Jenkins、Capistrano、Build...

    版本控制&协作开发:GitHub、GitLab、BitBucket、SubVersion、Coding、Bazaar

    自动化构建和测试:Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit

    持续集成&交付:Jenkins、Capistrano、BuildBot、Fabric、Tinderbox、Travis CI、flow.ci Continuum、LuntBuild、CruiseControl、Integrity、Gump、Go

    容器平台: Docker、Rocket、Ubuntu(LXC)、第三方厂商如(AWS/阿里云)

    配置管理:Chef、Puppet、CFengine、Bash、Rudder、Powershell、RunDeck、Saltstack、Ansible

    微服务平台:OpenShift、Cloud Foundry、Kubernetes、Mesosphere

    服务开通:Puppet、Docker Swarm、Vagrant、Powershell、OpenStack Heat

    日志管理:Logstash、CollectD、StatsD、ExceptionLess

    监控,警告&分析:Nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana

    展开全文
  • 转载本文需注明出处:微信公众号EAWorld,违者必究。Devops作为技术中台的重要组成部分之一,其下“自动化测试”功能也是不可或缺的一环,如何结合DevOps自身提供的自动化测试功能...

    转载本文需注明出处:微信公众号EAWorld,违者必究。

    Devops作为技术中台的重要组成部分之一,其下“自动化测试”功能也是不可或缺的一环,如何结合DevOps自身提供的自动化测试功能,做好DevOps的接口自动化呢?首先要先了解DevOps为自动化测试提供了哪些功能,如何使用该功能进行自动化测试,以及如何设计测试框架等等,本文将会为大家一一解答。

    DevOps作为技术中台的“效率&精益“平台,集成了多方测试工具供使用。目前集成的自动化测试工具有:robot-framework 、Jmeter。

    目录:

    1.为什么采用RobotFramework?

    2.什么是RobotFramework?

    3.RF如何做接口测试?

    4.如何在DevOps中执行rf脚本并生成测试报告

    一、为什么采用RobotFramework?

    针对接口、web网页、app自动化测试的工具有很多:selenium、jmeter、soapui、robotFramework、postman等,如何选择适合自己的自动化测试工具?此时便要看具体需求和业务。

    应需求:为DevOps产品做自动化接口测试,那DevOps自身集成了jmeter和rf框架,且采用jmeter或者rf工具,能使自动化测试过程在DevOps中“数据可视化”,每次执行后的各项测试数据指标(包括测试结果、测试报告、成功率、失败率等)直接在DevOps中进行展示、更是省略了自行配置jenkins进行自动化执行部署等操作,对于管理人员以及测试人员而言,均有受益。

    又考虑到测试人员技术水平,相对而言,rf简单易上手,所以rf突出重围,成为此次自动化工具角逐的“冠首”。

    二、什么是RobotFramework?

    Robot Framework是一款python编写的功能自动化测试框架,可导入各第三方测试库(例如:Selenium2Library、RequestsLibrary、DatabaseLibrary、HttpLibrary.HTTP),通过关键字进行web或接口自动化测试。

    RF特性:

    1、rf测试用例支持文本文件保存,使用制表符分隔数据,可方便使用任何文本编辑器,或者excel编辑测试用例,也可使用HTML格式创建用例;

    2、测试用例支持变量使用,可使用IF、ELSE以及For循环语句;

    3、支持关键字驱动、数据驱动和行为驱动;

    4、利用已有关键字,测试人员可进一步“封装”,形成更高级别的行为;

    5、测试人员可使用Python编写自己所需的关键字;

    6、测试报告和日志为HTML格式,便于阅读;

    7、使用简单,更好理解以及上手等

    三、RF如何做接口测试?

    1、RF脚本编辑工具:可通过RED工具(该工具百度文献参考多,这里不做介绍)或者eclipse来编辑Robot FrameWork测试用例;个人用的eclipse,更方便进行关键字的查看,具体可参考文献:https://www.cnblogs.com/Simple-Small/p/9229397.html。

    2、准备好rf环境【python环境、robotframework安装、JDK1.8+Eclipse+RED插件】;

    3、安装第三方库,提供接口测试的关键字:RequestsLibrary(在rf中,python语言的接口测试库名称为RequestsLibrary)、DatabaseLibrary、HttpLibrary.HTTP等;

     

    若导入httplibrary库出错,可参考以下文献进行调试:

     

    4、在robot脚本中引入所需各库:

     

    5、认识RequestLibrary以及DatabaseLibrary中的关键字。

     

    掌握各关键字含义以及用法,是利用RF做自动化测试的核心。在.robot文件中,鼠标悬浮在关键字上,会显示该关键字用法,或者按住CTRL键,鼠标点击可进入到py文件中,直接查看该关键字的实现和描述,RF接口测试主要用到以下红框关键字,还有其他语法例如FOR循环、json数据格式转换等需要掌握。RF基本语法以及关键字用法此处不做详细解析,对此有兴趣者可通过各学习网站搜索关键字:robotframework,查看对应视频学习即可;接下来主要以笔者实践rf接口自动化框架的二次封装为主线展开(为笔者个人实践,多处还有待后期改善,不完善处请谅解)。

     

    6、下图为笔者根据使用场景和需求,设计的RF接口自动化的基本框架:

     

    这里将rf框架封装为5层:工具类层、关键字层、基础数据层、测试数据层和用例层。

    工具类层:若rf已存的关键字不满足需求,可自行编写py函数实现;

    关键字层:将复用率高的代码块进行提取封装,成为新关键字。例如:

    • connectDatabase -连接数据库;

    • initDocData -执行数据库脚本;

     

    点击“Test cases”Tab页,可以表格形式展示rf测试用例;也可切换到“source”Tab页,直接以源码形式展示,看个人习惯选择视图编写脚本即可;

     

    测试数据层:分为“sql脚本” 和“ py文件”两类。

    • sql脚本中存储insert语句,为“删改查”接口准备基础数据,在测试用例执行之前进行数据库脚本初始化操作(使用Suite Setup);

    • Py文件 : LIST__addIDoc为新增接口的测试数据,其校验数据对应为:LIST__assertAddIDoc。.py文件中存储list类型数据,作为“增”[post]接口的测试数据以及各接口的校验数据;如图所示,其中“删改查”[delete/put/get]接口的校验数据需根据sql中的数据进行设计,一条测试数据对应一条校验数据,其List下标相同,保证进行数据遍历时测试数据和校验数据能一一对应。

     

    测试用例层:使用关键字,编写测试用例脚本。

    获取测试数据组,利用FOR循环,根据测试数据的List长度【即测试数据组数】遍历请求参数:

     

    发送相应请求,获取返回值,同时校验返回值是否与预期相符:

     

    关键字assertResult:为自定义关键字,参数有三个:接口返回值response、当前接口校验数据List、测试数据下标,若返回值状态码与预期状态码一致,则继续通过testcase关键字校验responseContent值是否与预期值相等,若状态码不相等,则直接跳过进入下一循环【这里校验和测试数据需严格按照“下标一一对应”规则 ,否则在校验时则无法正确匹配,且测试数据有几组,则校验数据也应有几组,否则将报错】。

     

    关键字testcase:有两个参数:response返回值和对应的校验数据,主要用作responseContent内容与校验数据的比对,若校验数据中所有key对应的value值,都与responseContent里同一key的value值相同【responseContent包含校验数据】,则校验通过。

     

    总结:

    1、预置测试数据和校验数据(通过sql脚本和Py文件中存储List类型数据) ;

    2、通过testcase前置条件,连接数据库并执行sql脚本初始化数据,且进行登录操作,将“认证”值设置为全局变量,供后续接口使用;

    3、编写测试用例,利用for循环遍历测试数据,发送请求,并获取同List下标的校验数据,进行返回值的校验;

    至此整个测试流程结束。小伙伴们get到我的整个框架设计了吗?

    四、如何在DevOps中

    执行RF脚本并生成测试报告

    到这里可能会有人问:测试报告和日志如何处理?这时候就要结合我们的DevOps产品,前言讲过DevOps为自动化测试做了哪些工作,是的,就是利用DevOps集成的rf任务,和拉取代码库代码任务,进行rf脚本的执行,执行完毕后,会将生成的测试报告存储在:与发布到nexus的工件路径一致。

    1)添加Robotframework任务,输入测试用例路径以及介质仓库,选择测试执行机(测试执行机需提前安装好robotframework运行环境),点击执行。

     

    2)robotframework任务执行完毕后,点击进入“自动化测试”tab页,显示本次运行相关信息(包括测试环境、运行开始结束以及持续时间)和测试报告、日志链接。

     

    查看每次运行后的测试报告。这就让我们的自动化工作变得更加简单,只考虑如何将测试用例写好即可,无需考虑CICD工作。

    题外话:

    普元devops产品,以自身提供的RF自动化测试功能为基础,极大程度的简化了自动化测试的CICD工作,让测试工程师更专注于维护测试用例和框架的编写,且提供自动化测试报表,让自动化过程透明化。整个rf框架历时两个月,中间不断修正,在这个过程中又接触到其他的自动化测试方案,还有很多需要完善和更改的地方,期待后面的框架订正吧【测试数据将更改为写在excel中,从excel中读取测试数据,并将每条测试用例的测试结果写在excel中】。欢迎各位小伙伴来沟通RF或者其他自动化测试方案~

    关于作者:冰糖糯米,普元测试工程师,目前参与Devops项目的功能测试以及接口自动化测试工作。致力于测试技术的研究和开发。

    关于EAWorld:使能数字转型,共创数智未来!长按二维码关注!

    展开全文
  • 在之前的五篇文章中,我们介绍了从Git、Maven、Junit、SonarQube、Sh等工具...Devops关键工具及技术(一)—Jenkins 容器 Devops关键工具及技术(二)—Jenkins2.0 Pipeline Devops关键工具及技术(三)—基于Pipeline的...

    在之前的五篇文章中,我们介绍了从Git、Maven、Junit、SonarQube、Sh等工具及技术介绍了从持续集成到静态代码扫描再到简单的部署。基本可以满足了我们在基础开发过程的流水线。

    之前的文章链接见下:
    Devops关键工具及技术(一)—Jenkins 容器化
    Devops关键工具及技术(二)—Jenkins2.0 Pipeline
    Devops关键工具及技术(三)—基于Pipeline的Git+Maven+Junit持续集成
    Devops关键工具及技术(四)—基于Pipeline的SonarQube静态代码扫描
    Devops关键工具及技术(五)—基于Pipeline的Bash脚本部署

    接下来,我们将介绍在流水线中加入测试相关的功能,如Web自动化测试、性能测试这些测试流水线。Web自动化测试加入到流水线中,将会用三篇文章进行介绍。在Web自动化测试的框架中将会选用RobotFramework+Selenium2Library。三篇文章分别是Windows下Web自动化测试工具安装Web自动化测试工具的容器化Web自动化测试的流水线集成

    本篇我们将介绍Web自动化测试工具的容器化。
    以下所有的文件代码都可以在Github找到:
    https://github.com/zbbkeepgoing/containerization

    1、容器化

    Web自动化工具容器化是为了我们能够将Wen自动化加入到我们的Jenkins中成为一个 节点,这样Web的自动化测试将会很容易地集成到我们pipeline流水线中。并且容器化后自动化测试的工具部署将会变得非常简单,只需要部署一个容器即可以进行自动化的测试。
    下面就是Web自动化测试的Dockerfile文件

    FROM ubuntu:16.04    //基础镜像
    
    ENV http_proxy http://192.168.88.130:8118    //配置代理,无需代理的可以去掉
    ENV https_proxy http://192.168.88.130:8118     //配置代理,无需代理的可以去掉
    
    RUN apt-get update && apt-get install -y --no-install-recommends \
     python \
     python-pip \
     unzip \
     libx11-6 \
     libnss3 \
     libfontconfig1 \
     libgconf2-4 \
     wget \
     git \
     openjdk-8-jdk \
     && rm -rf /var/lib/apt/lists/*      //安装必要软件包
    
    
    
    RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -;\
        echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list 
    RUN apt-get update && apt-get -y remove google-chrome-stable  && apt-get install -qy google-chrome-stable    //安装google浏览器稳定版
    RUN pip install --upgrade pip  //更新pip
    RUN pip install --upgrade setuptools   //更新setuptools
    RUN pip install robotframework  //安装robotframwork
    RUN pip install robotframework-seleniumlibrary   //安装seleniumlibrary   
    RUN pip install robotframework-faker   //安装robotframework-faker
    RUN wget  https://chromedriver.storage.googleapis.com/2.42/chromedriver_linux64.zip; \
        unzip chromedriver_linux64.zip; \
        rm -rf chromedriver_linux64.zip; \
        mv -f chromedriver /usr/local/bin/chromedriver;    //安装google浏览器驱动
    RUN pip install robotframework-selenium2library   //安装selenium2library   
    ENV http_proxy ""   //取消代理
    ENV https_proxy ""   //取消代理
    

    根据Dockerfile镜像Docker的构建。

     docker build -t robot:latest .
    

    构建完成后运行

    docker run --name robot -it -d robot:latest
    

    测试

    • 测试工具是否都已成功安装
    [root@localhost ~]# docker exec -it e8c2eb006383 sh
    # google-chrome --version
    Google Chrome 69.0.3497.100 
    # robot --version
    Robot Framework 3.0.4 (Python 2.7.12 on linux2)
    # 
    # chromedriver --version 
    ChromeDriver 2.42.591071 (0b695ff80972cc1a65a5cd643186d2ae582cd4ac)
    # 
    
    • 测试Baidu的Demo自动化Web脚本

    脚本可以在这里找到:https://github.com/zbbkeepgoing/containerization/blob/master/RobotFramework/sample.robot

    该脚本与上一篇文章中的脚本不太一致,主要原因是容器化后Google浏览器将无法进行可视化得进行调用,因为在容器里面。所以我们需要采用headless模式进行运行Google浏览器

    *** Settings ***
    Library           Selenium2Library
    
    *** Test Cases ***
    Baidu
        Open Headless Chrome    https://www.baidu.com   
        Wait Until Page Contains    baidu
        Close Browser
    
    *** Keywords ***
    Open Headless Chrome
        [Arguments]    ${url}
        ${chrome_options}=    Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
        Call Method    ${chrome_options}    add_argument    no-sandbox
        Call Method    ${chrome_options}    add_argument    headless
        Call Method    ${chrome_options}    add_argument    disable-gpu
        Create Webdriver    Chrome    chrome_options=${chrome_options}
        Go To    ${url}
    

    进入容器进行测试

    [root@localhost RobotFramework]# docker cp /root/containerization/RobotFramework/sample.robot e8c2eb006383:/opt
    [root@localhost RobotFramework]# docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    e8c2eb006383        robot:latest        "/bin/bash"         23 hours ago        Up 23 hours                             robot
    [root@localhost RobotFramework]# docker exec -it e8c2eb006383 sh
    # cd /opt
    # ls
    google	sample.robot
    # pybot -d /opt sample.robot
    ==============================================================================
    Sample                                                                        
    ==============================================================================
    Baidu                                                                 | PASS |
    ------------------------------------------------------------------------------
    Sample                                                                | PASS |
    1 critical test, 1 passed, 0 failed
    1 test total, 1 passed, 0 failed
    ==============================================================================
    Output:  /opt/output.xml
    Log:     /opt/log.html
    Report:  /opt/report.html
    # 
    
    

    以上即是Web自动化测试工具容器化的内容,后面将会利用容器化后的镜像与Jenkins、Pipeline结合进行Web自动化测试的集成

    展开全文
  • 一、Azure DevOps介绍 1.什么是 Azure DevOps? Azure DevOps其实是VSTS(Visual Studio Team Service)更名后的名字。而VSTS是TFS(Team Foundation Server)的在线版本。所以Azure DevOps可以理解为是放在Azure云上的...
  • 在之前的五篇文章中,我们介绍了从Git、Maven、Junit、SonarQube、Sh等工具...Devops关键工具及技术(一)—Jenkins 容器 Devops关键工具及技术(二)—Jenkins2.0 Pipeline Devops关键工具及技术(三)—基于Pipeline的...
  • 定制流水线式执行web自动化测试工具。 推荐的目录结构 不同插件的默认值是按照以下目录结构来设置值的,也是我们推荐的目录结构。 project_path 开发运维 devops-app(用于DevOps执行自动化测试和输出测试产物)...
  • 在之前的五篇文章中,我们介绍了从Git、Maven、Junit、SonarQube、Sh等...Devops关键工具及技术(一)—Jenkins 容器 Devops关键工具及技术(二)—Jenkins2.0 Pipeline Devops关键工具及技术(三)—基于Pipeline的...
  • 目录什么是 `DevOps``DevOps` 概念的起源单体架构 + 瀑布模式分布式架构 + 敏捷开发...它的目标:DevOps 就是让开发人员和运维人员更好地沟通合作,通过自动化流程来使得软件整体过程更加快捷和可靠 DevOps 概念的起源
  • 之前的几篇文章中我们谈到了 DevOps 的分支模型,持续集成,而这次我会说一些 DevOps自动化测试的相关话题。DevOps 一项核心的优势在于能够加快产品开发-上线-反馈的循...
  • 自动化测试devops DevOps测试自动化是实现快速交付,可伸缩性,安全性,协作和监视的关键,这可以使当今的敏捷团队保持高生产力。 测试自动化使企业可以通过以下方式提高效率并提高投资回报率: 缩短开发周期...
  • 三、概念澄清四、概念模型五、总体设计六、关键点设计七、总结说到自动化部署,大家肯定都会想到一些配置管理工具,像ansible,chef,puppet,saltstack等等。虽然这些工具给运维效率和安全性带来了很多好处。但是实际...
  • DevOps自动化测试的新挑战 DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。 它是一种重视...
  • DevOps自动化流程 一、解决方案 1、对组织人员培训,转变四思维向自动化/规范化转型 2、配合效率工具(自动化)对流程进行简化/标准化 3、全员参与并实践 二、DevOps工作流程 DevOps工作模式属于敏捷开发流程...
  • Best Automation Testing Tools for 2020对更快交付高质量软件(或"快速质量")的需求要求组织以敏捷,持续集成(CI)和DevOps方法论来寻找解决方案。测试自动化是这些方面的重要...没有好的工具就无法实现测试自动化...
  • 十大最佳DevOps工具

    千次阅读 2020-11-26 13:06:43
    十大最佳DevOps工具(转载) 【编者的话】DevOps落地重要的一方面是...让我们一起看看从自动化build工具到应用程序性能监控平台领域里,十大最佳DevOps工具是哪些吧。 1. Gradle DevOps工具集需要一种可靠的bu.
  • 本文通过介绍DevOps流程中主要的环节和工具,讨论DevOps落地的关键要点,即如何构建自动化持续交付流水线。
  • 对于自动化测试这部分,相信不是专门做测试的人接触的还是比较少的,那么我们怎么实现自动化测试代码编写就是我们首要解决的问题。 自动化测试框架 自动化测试框架,即是应用于自动化测试所用的框架。按照框架的...
  • 1)代码集成到主干之前,必须通过自动化测试,只要有一个测试用例失败,就不能集成。 2)通过Code Review、代码质量分析工具对代码质量进行把关,以便确定是否能够集成。 Martin Flower说过, “持续集成并不能消除...
  • **DevOps是Development和Operations的组合,是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。**它的出现是由于软件行业日益清晰地认识到:...
  • 一、了解什么是DevOps DevOps的目标是实现软件系统的快速交付、并且提升系统稳定性和获得用户良好的反馈。...包含:基础设施即代码、CI/CD、自动化测试、容器化、服务编排、自动化部署和软件度量等。 CI/CD流水线是决

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,650
精华内容 9,060
关键字:

devops自动化测试工具