zoukankan      html  css  js  c++  java
  • 自动化测试整理 STAF/STAX & Robot Framework

    题记:上周花了点时间学习开源的自动化测试框架Robot Framework,结合自己之前的自动化经验,就想周末写篇文章整理下。

    目前,所在项目的自动化测试框架是基于STAF/STAX的拓展,围绕STAX执行引擎,扩展了测试用例的创建、管理(挑选执行那些测试用例:按照模块,标签)、Log、Report功能,由Java来实现的。这是一个关键字驱动的测试,测试用例由一个个关键字组成记录每一关键字的执行结果。同时,测试用例和测试数据相分离,把测试用例中一些可能变换的数据抽离出来,用宏替代,避免hard-coding,避免因为一些环境因素的变换而导致测试用例的fail,对自动化框架而言,稳定还是蛮重要的。

    STAF是一个开源、跨平台、支持多编程语言的框架,以Services 的形式提供一些常用功能,比如跨网络传出文件、远程启停一个程序、测试用例的执行引擎服务等。在我们的框架中用到了其中两个services,一个是 FILE SYSTEM用于在test client 和test server之间传文件,另一个便是STAX 测试用例执行引擎。

    FS 的使用:

    #stafcore is a STAFHandle instance;
    String service = "FS";
    String req = "COPY DIRECTORY " + srcdir + " TODIRECTORY " + desdir + " TOMACHINE " + tomachine + " RECURSE KEEPEMPTYDIRECTORIES";
    STAFResult result = stafcore.submit2(location, service, req);

    STAX 引擎的使用:

    String service = "STAX";
    String req = "EXECUTE FILE "+jobpath;
    stafcore.submit2(location, service, req);

    STAX中有个job的概念,你可以把job理解test case,job是以XML文档的形式传递给STAX服务的,因为STAX是使用Jyhton来执行Python代码的,而Jython允许以Python的语法格式来访问Java classes,所以你可以在XML 的<script>元素中插入java 代码 ,如下 :

    <script>
    from com.ibm.staf import STAFHandle
    myhanlde = STAFHandle("MySTAXJobHandle")
    </script>
    

    现在来谈谈Robot 框架,第一次接触Robot Framework是帮同事写一个python脚本,当时很奇怪,要求如果expected result 与 actual result 不符合,就抛出一个exception。现在想想,这个python文件是作为libray 导入到Robot Framework, 里面包含的方法就是一个个keywords,Robot通过捕获exception来判定keyword Fail。

    Robot是一个开源的自动化测试框架,是由Python实现的。可以说,Robot 实现了你能想到的所有自动化框架能做的事情。

    • Hight-level keywords : 可以基于现有keywords,由几个keywords组成一个high-level keowrd.
    • Tagging: 测试用例的标签,可以给测试用例一个,或多个标签,如smoke 、regression 等,执行测试用例的时候,可以只执行这些含有这些标签的测试用例.
    • Clear report & detailed log
    • Different library: Robot 提供一些library,如operatingsystem, 还有一些第三方提供的library,如Selenium2Library 用于web 自动化测试。你也可以自己扩展自己library库,可以用python 和java来实现。用java实现的library,需要jybot来运行。
    • Ride: 是一个用于编写自动化测试用例的GUI,导入library,便可以创建test suit ,test cases了,支持自动补全的哦。微笑

    现在要做的工作就是把原来实现的keyword,按照Robot要求的格式重新实现一遍,主要的不同是判断keyword pass,还是fail ,Robot要求抛出异常哦!

    自动化测试开发,维护过程中,还有一点需要注意:一定要加入版本控制,无论是自动化框架的源码,还是测试用例、测试数据。现在比较流行的是Git.

    最后,贴几篇文章介绍robot的文章:

  • 相关阅读:
    Java安全之JNDI注入
    Visual Studio 2019 升级16.8之后(升级.Net 5),RazorTagHelper任务意外失败
    .Net Core 3.1升级 .Net 5后出现代码错误 rzc generate exited with code 1.
    重走py 之路 ——普通操作与函数(三)
    重走py 之路 ——字典和集合(二)
    设计模式结(完结篇)
    重走py 之路 ——列表(一)
    RestfulApi 学习笔记——分页和排序(五)
    RestfulApi 学习笔记——查询与过滤还有搜索(五)
    Android开发 Error:The number of method references in a .dex file cannot exceed 64K.Android开发 Error:The number of method references in a .dex file cannot exceed 64K
  • 原文地址:https://www.cnblogs.com/matt123/p/2598416.html
Copyright © 2011-2022 走看看