信息系统开发平台OpenExpressApp:【OpenTest】 之 如何实现自动化测试框架

简介:

OpenExprssAppRoadmap图中的OpenTool中明确列出了测试,自动化测试框架是OpenTest的一个主要组成部分,在前面blog中我也介绍了OpenTest自动化测试框架的一些内容,本篇我介绍一下为什么现在在OEA中实现自动化测试框架,以及我是如何思考的。

两周内搭建自动化测试工具

  我现在所在项目组开发的产品都属于新产品系列,一开始连测试人员都没有,业务人员充当测试人员,做的也只能是一些操作性的点击验证,这在项目前期还没有表现出明显的问题。到产品成型,需要交付用户上线使用时,这时问题就会很快的暴露出来了,由于一个系统并不只是一个计算器那么简单,有很多地方都需要测试,而没有专人专岗进行这项测试工作室很难保证质量的。后期,我们组进入了两名测试人员,质量也有所提高,但是每次发版他们都要进行大量的回归测试,由于时间压力、对业务和系统的把握上总会遗留一些需要回归的地方,即使他们考虑周全,这种重复性的手工测试方法也不是我所希望的工作方式,IT人工作要的就是高效能,所以我给自己的要求就是两周内支持OEA中的OpenTest自动化测试。  

自动化测试框架的总体要求

  在实现自动化测试框架之前,我并不是急于考虑使用什么语言,如何设计等,我考虑的是我的测试框架应用时应该是什么样子的

  1. 面向测试人员,甚至需求人员,脚本简单易学易懂
  2. 测试脚本易维护
  3. 可以与需求、开发工作同步,不需要等待开发结束后才开始编写脚本
  4. 框架可以由有编码经验的测试人员维护扩充

方案选择

  根据上面自动化测试框架的总体要求,我没有使用VS2010自带的录制自动化测试功能,而是在OEA中加入自己的自动化测试支持:

  1. 不做通用自动化测试框架,专为OpenExpressApp编写自动化脚本,减少复杂性
  2. 编写DSL自动化测试框架,让语法变得更简单,也增加可维护性

采用技术方案选择

  由于我只给了自己两周时间完成自动化测试框架,所以只能实现一个初步可以执行的框架,完成的也是核心的部分,以下对过程中的一些技术方案进行简要说明一下

框架使用方法介绍

  1. 修改inc.rb中的$ExePath = "d:/GZJ/OpenExpressApp/OpenExpressApp.Host.WPF/bin/Debug"为你的程序路径
  2. 在框架的TestCase目录下编写测试用例文件:XXX.rb,文件大致结构如下
    01 $用例名称 = "这个测试用例的中文名称"  #出现错误后,邮件中会使用这个名称来报错
    02   
    03 #以下两个require是必须的
    04 require "inc.rb"                       
    05 require "TestCase/run_app.rb"
    06   
    07 #以下为用例步骤描述区域,相当于以前写的测试用例步骤
    08 #用例步骤描述:
    09 # 1 新增部门, 编码:Test  名称:自动化测试
    10 # 2 选择前两行和【一审人员】
    11 # 3 选中一审人员,设置部门管理的功能权限,取消部门管理下的全部展开和全部折叠功能
    12 # 4 选择数据权限页签,添加PBS业务对象,设置可读表达式为 1=1
    13 # 5 保存
    14 # 6 删除当前新增记录
    15   
    16 #以下为具体脚本
    17 打开模块 "部门管理"
    18   
    19 # 1 新增部门, 编码:Test  名称:自动化测试
    20 添加
    21 属性编辑器("编码").输入("Test")
    22 属性编辑器("名称").输入("自动化测试")
    23 ....
  3. 在框架main.rb中增加测试用例的启动命令
    01 require "inc.rb"
    02 require "mail.rb"
    03   
    04 运行测试用例文件 "demo/project.rb"
    05 运行测试用例文件 "demo/org_manage.rb"
    06 #运行测试用例文件 "demo/contract.rb"
    07   
    08 发送邮件
    09   
    10 # TestApplication.instance.app.close
    11 Playback.Cleanup()
  4. 在框架main.rb中增加邮件接收人地址
    1 #增加收件人列表
    2 $收件人 << "zhoujg@grandsoft.com.cn"
  5. 执行rub.bat运行自动化测试脚本

todo

  1. 增加检查点支持,例如行号、值,以及异常二级窗口弹出检测等
  2. 增加调度服务器,支持多个客户端分布执行测试用例
  3. 增加在OpenExpressApp应用中的录制功能,自动生成自动化测试脚本
  4. OpenMetaEdit完成后,增加图形化自动化编写工具

回顾

  1. 框架设计不能一开始陷入细节,必须先确定方向,对主要方面进行思考后才动手
  2. 执行时大致想好计划,哪些当前做,哪些后期做
  3. 时刻站在使用者角度去考虑如何简化开发方法

 








 本文转自 jingen_zhou 51CTO博客,原文链接:http://blog.51cto.com/zhoujg/518550,如需转载请自行联系原作者


相关文章
|
27天前
|
敏捷开发 分布式计算 测试技术
深入理解软件测试中的自动化框架选择与优化策略
【2月更文挑战第29天】 在软件开发的生命周期中,测试环节扮演着至关重要的角色。随着敏捷开发和持续集成的普及,自动化测试成为确保软件质量和加快产品上市速度的关键手段。本文将探讨在构建自动化测试框架时面临的挑战,分析不同类型自动化框架的特点及其适用场景,并提出一系列优化策略,旨在帮助测试工程师提高测试效率,确保测试结果的准确性。
13 0
|
2天前
|
监控 测试技术 API
深入理解自动化测试框架Selenium的设计与实现
【4月更文挑战第14天】在软件开发过程中,自动化测试是确保代码质量、减少人工重复劳动的关键步骤。Selenium作为一款广泛使用的自动化测试工具,提供了对多种浏览器和操作系统的支持。本文将探讨Selenium的核心组件及其架构设计,分析其如何通过WebDriver与浏览器交互,以及它如何支持多种编程语言进行脚本编写。同时,我们还将讨论Selenium Grid的作用以及它如何实现并行测试,以缩短测试周期并提高测试效率。
163 58
|
4天前
|
Web App开发 前端开发 Java
框架分析(11)-测试框架
框架分析(11)-测试框架
|
18天前
|
敏捷开发 设计模式 监控
深入理解自动化测试框架的设计原则
在软件开发的复杂多变环境中,自动化测试已成为确保产品质量和加速市场交付的关键步骤。本文将探讨自动化测试框架的设计原则,包括模块化、可扩展性、易用性和可靠性,旨在为软件测试工程师提供构建高效、健壮且易于维护的自动化测试系统的指导。通过分析设计模式的应用,我们将了解如何减少代码冗余,提高测试覆盖率,并适应快速变化的技术要求。
|
19天前
|
前端开发 IDE JavaScript
深入理解自动化测试框架Selenium的设计与实现
本文旨在探讨开源自动化测试框架Selenium的核心设计及其实现机制。通过分析其架构、组件和工作原理,揭示Selenium如何有效地支持跨浏览器、跨平台的自动化Web测试。文中不仅介绍了Selenium的主要功能模块,还详细讨论了其面临的挑战及应对策略,为读者提供了深入了解和使用Selenium的理论基础和实践指导。
|
23天前
|
设计模式 敏捷开发 监控
深入理解与应用软件自动化测试框架
在快速迭代的软件开发过程中,自动化测试已成为确保产品质量和加快交付速度的关键因素。本文将详细探讨自动化测试框架的核心原理、设计模式及其在实际项目中的应用。我们将分析几种流行的自动化测试工具,如Selenium、Appium和JUnit,并讨论它们如何集成以形成强大的测试解决方案。文章还将展示通过自定义框架来满足特定测试需求的实例,以及如何通过持续集成和持续部署(CI/CD)流程优化测试实践。
|
24天前
|
敏捷开发 IDE 测试技术
深入理解自动化测试框架Selenium的设计理念与实践
随着敏捷开发和持续集成的理念深入人心,自动化测试在软件开发周期中扮演着越来越重要的角色。Selenium作为一个广泛使用的自动化测试工具,其设计理念和实践对于提高测试效率和质量具有指导意义。本文将深入探讨Selenium的核心设计原则、架构以及最佳实践,旨在帮助读者构建更稳定、高效的自动化测试系统。
|
24天前
|
jenkins 测试技术 持续交付
深入理解自动化测试框架设计原则与实践
本文旨在探讨自动化测试框架的设计原则及其在实际项目中的应用。通过对自动化测试框架的系统剖析,我们揭示了有效构建和维持测试框架的核心要素,并提供了一套实用的指导方案来帮助读者实现高效、可靠的自动化测试流程。文章不仅聚焦于框架的技术细节,也强调了灵活性、可维护性和可扩展性在设计时的重要性,同时结合实际案例分析,展示了如何在不同测试环境中定制化和优化测试框架。
|
26天前
|
缓存 运维 Serverless
应用研发平台EMAS产品常见问题之测试检查更新没有反应如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
26天前
|
机器学习/深度学习 敏捷开发 人工智能
深入探索软件自动化测试:框架与实践
【2月更文挑战第30天】 在快速迭代的软件开发周期中,自动化测试已成为确保产品质量和加快交付速度的关键因素。本文将深入探讨自动化测试的核心概念、常用框架以及在实际项目中的应用实践。我们将分析自动化测试的优势,并讨论其在不同开发阶段的作用,同时提出构建高效自动化测试流程的策略。通过实际案例分析,本文旨在为读者提供一套系统的自动化测试解决方案,以应对日益复杂的软件测试挑战。

热门文章

最新文章