`
csc365kl
  • 浏览: 56439 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

自动化测试程序

 
阅读更多

最近开始用groovy写一个自动化测试,还算比较通用,有命令行ui 

还有待完善

 

测试运行-命令行

 

cd到项目根目录下即 autotest.groovy所在目录执行命令

目前所有的命令集如下:

test_all                           测试所有脚本

test_package 包名                 测试script目录下的指定目录下的脚本

:test_package  script.abc

test_script 包名.脚本名             测试script目录下的指定文件脚本

例:test_script  script.abc.TestClass

test_function 包名.脚本名.方法名    测试指定脚本的指定测试功能(方法)

例:test_function  script.abc.TestClass.methodA

generate_script 包名.脚本名                 创建测试脚本

例:generate_script. abc.TestClass

 

如果 命令后加 -i 则会进入交互模式 test_package -i abc

在交互模式下如果 出现程序异常或断言错误可以选择是否继续进行下面的测试

 

最后日志存放在www/log

 

 

 

测试运行-图形界面

cd到项目根目录 执行testui.groovy

打开浏览器 http://localhost:8088/test/

 

如上图

4个区域

top区域:点击<!--[if gte vml 1]><v:shape id="图片_x0020_10" o:spid="_x0000_i1026" type="#_x0000_t75" style='width:22.5pt;height:10.5pt;visibility:visible; mso-wrap-style:square'> <v:imagedata src="file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png" o:title="" /> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->可以切换皮肤风格,点击测试全部可以对所有的测试脚本进行测试,点击历史日志可以查看所有www/log下的历史日志文件,点击清空控制台会将控制台中所有选项卡的信息清除

 

/脚本区:显示的是script下存放的包和脚本,右击菜单选择run可以执行包下测试脚本或单个测试脚本

 

方法区:点击包/脚本区的测试脚本时,如果测试脚本下有测试方法那么可以右击菜单选择run直接运行指定的测试方法

 

控制台:

在执行测试后的日志展示区域,日志存放在www/log,点击<!--[if gte vml 1]><v:shape id="图片_x0020_13" o:spid="_x0000_i1025" type="#_x0000_t75" style='width:15pt; height:7.5pt;visibility:visible;mso-wrap-style:square'> <v:imagedata src="file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png" o:title="" /> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->可以开启或暂停对当前选项卡的测试日志的监控

 

测试脚本编写

测试脚本需要使用groovy脚本语言编写

脚本必须放在根目录下script包下,script下最多支持1级目录

测试脚本必须继承testbase.TestBase

需要进行测试方法必须在方法上使用@TestCase 标注

例:@TestCase(function='将符合标准的职位对象持久化',timelimit=12l)

TestCase表示此方法需要测试,function内容说明该测试方法测的业务规则(可选),timelimit为方法允许的最大耗时上限(可选)为12ms

 

以下是两个完整的测试方法例子(查询及添加):

  //职位view模拟

  static Appointment newAppointment(){

        def appointment = new Appointment()

        appointment.setAppointmentDesc("测试描述")

        appointment.setAppointmentResourceMstrId(new BigDecimal(112))

        //appointment.setAppointmentType('测试类型')

        appointment.setAppointmentStatus('测试状态')

        appointment.setAppointmentBeginDateTime(new                                  Timestamp(System.currentTimeMillis()))

        appointment.setAppointmentEndDateTime(new Timestamp(System.currentTimeMillis()          + 100000))

        appointment.setCreatedBy(0)

 

        return   appointment

    }

 

    @TestCase(function='查找到正确的职位集合',timelimit=12l)

    void searchAppointmentList() {

        //session 设置

        initSession(0)

 

        //view设置

        def searchView0 = new AppointmentSearchView()

        searchView0.setAppointmentResourceMstrId(new BigDecimal(573));

        //测试逻辑

        AppointmentCommonService service = RemoteProxyFactory.getService(AppointmentCommonService.class)

        List<AppointmentInfoView> rs = service.searchAppointmentList(searchView0)

        //println rs['cscsc']

 

        //测试验证

        assert rs.isEmpty() == false

 

    }

 

 

    @TestCase(function='将符合标准的职位对象持久化',timelimit=12l)

    void createAppointment() {

        //会话设定

        initSession('ktadmin')

        //模拟对象验证

        def appointment = newAppointment()

        assert  appointment.getAppointmentType() != null,'职位类型必须填写'

        assert  appointment.getAppointmentStatus() != null,'职位状态必须填写'

 

 

        //测试逻辑

        AppointmentCommonService service =                              RemoteProxyFactory.getService(AppointmentCommonService.class)

        Appointment rs = service.createAppointment(appointment)

        println rs.appointmentId

 

 

        assert rs != null

    }

 

session有多种方式可以设置

1) initSession (20, null, null, null, null, null, null, null, null, null, null, null) 新设置一个session

2) initSession ('ktadmin') 获取一个当前的session 可在testbase.Sessions中添加

3)initSession(int userId)

4)initSession(int userId,int roleId )

5)initSession(int userId,int roleId,int localId)

...

 

服务端的方法通过RemoteProxyFactory.getService(AppointmentCommonService.class)方式构造

 

 

 

  • 大小: 43.9 KB
分享到:
评论

相关推荐

    自动化测试程序之自定义键盘的模拟测试程序

    这个程序,正如标题“自动化测试程序之自定义键盘的模拟测试程序”所示,是作者的原创作品,已经在实际测试环境中通过验证并成功应用于自动化测试流程。 “键盘事件模拟”是这个程序的核心功能,它允许测试程序模拟...

    基于Python的射频自动化测试程序研究-赵越.pdf

    【基于Python的射频自动化测试程序研究】 射频自动化测试是现代无线通信产业中的关键环节,随着无线通信技术的快速发展,射频设备的测试需求日益增长。传统的手动测试方法已经无法适应这种高效率、低成本的需求。...

    我的自动化测试程序

    个人编程中比较喜欢重构,重构能够提高自己的代码质量,使代码阅读起来也更清晰。但是重构有一个问题,就是如何保证重构后带代码实现的功能与重构前的一致,如果每次...于是就产生了自己写一个自动化测试程序的想法。

    SDRAM存储芯片内存单元自动化测试程序设计.pdf

    本篇文档《SDRAM存储芯片内存单元自动化测试程序设计.pdf》虽然未提供具体正文内容,但根据提供的标题、描述和标签,我们可以推断出文档内容涉及SDRAM(同步动态随机存取存储器)存储芯片的测试程序设计,特别关注...

    用python写一个自动朗读的自动化测试程序.pdf

    Python自动朗读自动化测试程序 本文将详细介绍使用Python编写的自动朗读自动化测试程序的实现方法和技术要点。该程序旨在解决物联网涉及到实际使用环境语音识别准确率的测试问题,通过自动化测试,提高效率和减少...

    基于JMeter、Ant和WeTest的佣金管理系统接口自动化测试程序开发.pdf

    本文档介绍了一种基于JMeter、Ant和WeTest的佣金管理系统接口自动化测试程序开发方法,旨在通过自动化手段提高对佣金管理系统的测试效率。 首先,文档提到了佣金管理系统的背景。这是一个采用微服务结构设计的保险...

    自动化测试程序之二模拟触摸屏点击事件和滑动事件

    自动化测试程序之二模拟触摸屏点击事件和滑动事件,程序经过本人测试通过。按照脚本中指令的坐标,构造点击事件,发送(写)到触摸屏设备的节点上,通过得到滑动的开始点和结束点的坐标,发送滑动时的报文到触摸屏...

    基于JMeter、Ant和WeTest的佣金管理系统接口自动化测试程序开发.rar

    本压缩包文件"基于JMeter、Ant和WeTest的佣金管理系统接口自动化测试程序开发"提供了一种有效的解决方案,利用这三种工具进行高效的测试。 首先,JMeter是Apache组织开发的一款开源性能测试工具,主要用于测试Web...

    联通支付注册-滑动验证-selenium+Opencv 自动化测试程序-pc端

    联通支付注册-滑动验证-selenium+Opencv 自动化测试程序-pc端 应用条件: 1 本地要加载 Open cv 插件才能运行, 2 seleinem 依赖部分 本代码为主要程序 应用基础: 熟悉 seleinem 及 Open cv应用环境能力的人, 仅...

    .NET软件测试自动化之道

    NET平台提供的一系列技术(而不是依赖于第三方的商业自动化测试工具),采用C#语言编写轻量级的、功能强大的自动化测试程序。本书各个章节所提供的示例代码适用于单元测试(UnitTest)、集成测试(IntegrationTest)...

    web版本自动化测试报告

    本报告主要聚焦于"web版本自动化测试报告",旨在详细介绍如何利用自动化工具和框架对Web应用程序进行有效的测试,以及测试结果的分析和总结。 一、自动化测试的重要性 1. 提升效率:相对于手动测试,自动化测试可以...

    基于C#UI Automation自动化测试自动化测试示例工程

    "基于C# UI Automation自动化测试自动化测试示例工程" 是一个使用C#编程语言构建的项目,其核心目标是实现UI(用户界面)自动化测试。UI Automation是.NET Framework提供的一种用于测试Windows应用程序用户界面的...

    小程序自动化测试方案与实践.pdf

    本文档主要为大家汇总了一些小程序自动化测试常见解决方案,主要针对微信、百度的小程序。微信提 供了自家了miniprogram-automator,能够很好地支持自家的小程序自动化测试。其实,小程序的自 动化测试说白了就是一...

    Python自动化测试.pdf

    Python 自动化测试主要通过使用 Selenium 工具来实现对浏览器的自动化控制,从而实现对 Web 应用程序的自动化测试。 目录中的第一个部分是自劢化测试环境搭建,主要介绍了为什么选择 Python 作为自动化测试的语言...

    JavaScript API自动化测试方案的管理设计与实现.pdf

    在本文中,我们将使用Robotium框架设计一个自动化测试程序,对JavaScript API进行自动化测试。 三、测试程序的设计与实现 在设计测试程序时,我们需要首先确定测试的范围和目标。然后,我们需要设计测试用例,确定...

    DDR自动化测试脚本工具

    - **测试脚本**:用特定编程语言(如Python、Perl或VHDL)编写的自动化测试程序,用于控制内存测试过程。 - **配置文件**:定义了测试参数,如测试次数、工作负载、延迟范围等。 - **日志记录器**:用于记录测试结果...

    Python-基于Appium的微信小程序自动化测试方案

    本文将深入探讨如何使用Python的Appium库进行微信小程序的自动化测试。微信小程序作为一种轻量级的应用形式,其测试需求同样不容忽视。通过自动化测试,我们可以确保小程序在不同环境下的稳定性和性能。 Appium是一...

Global site tag (gtag.js) - Google Analytics