`
eddysheng
  • 浏览: 111759 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于teamcity的持续集成实践(集成测试)

阅读更多

我在此所说的集成测试其实就是项目对外的接口测试,包括http接口、ejb接口和web service接口。

 

因为没有人指导你如何进行持续集成、如何做集成测试,一切都是摸着石头过河。看过一些文章关于集成测试的,譬如有人用selenium,但是我觉得不太适合我现在的项目,因为我们的产品只是对外提供接口,具体的ui实现由另外的项目组负责。因为不熟悉,所以我对我现在的做法都持有怀疑,如果您有更好的做法,请您一定赐教。

 

前面的ant脚本片断已经描述,集成测试是在整个环境部署好,weblogic启动之后进行的,因此我一直觉得这样的自动化测试才是最直接的,只要代码路径覆盖的足够全,将是非常有用的测试手段。

 

其实,集成测试、功能测试、端到端测试,一样还是不同,我也没理清,只是觉得都差不多,所以暂且叫集成测试吧。

 

这里的做法其实很简单,就是模拟client发起接口测试,检查最终状态是否成功,在这里我都是检查的数据库。

 

所有的集成测试都是基于Junit。

 

首先http接口,通过httpclient发起,然后检查db数据。

 

public void testSelfRegForUnmatch() throws Exception{
        regURL = "http://"+serverIP+":"+serverPort+"/test/Processor?msisdn="+ msisdn2 +
                "&regInfo="+imei1+"/TCL/e787/V1";
        sendRequest(regURL,10);
       
        DBService service = getDBService(1);
        DeviceInstance device = service.getLastPairByImei(imei1);
        assertNotNull(device);
        assertEquals(msisdn2, device.getMsisdn());
        assertEquals("210", device.getProvID());
        assertEquals("21", device.getCityID());

}

protected void sendRequest(String rurl,int waitSeconds) throws Exception{
        DefaultHttpClient client = new DefaultHttpClient();
        HttpGet httpget = new HttpGet(rurl);
        HttpResponse response = client.execute(httpget);   
        client.getConnectionManager().shutdown();       
   
        Thread.sleep(waitSeconds*1000);
}

 

然后ejb接口,通过模拟一个ejb client ,发起接口测试,检查数据库数据状态。

 

public void testDMConfig() throws Exception{
       String taskID = this.getDeviceCareService().configDevice(msisdn2);
       
        assertNotNull(taskID);
       
        Thread.sleep(5*1000);//等待接口运行完毕,这种方式也许改成定时检查数据库会更好
       
        DBService service = getDBService(1);
        FinishedTask task = service.getFinishedTask(taskID);
        assertNotNull(task);
        assertEquals("200", task.getStatus());
}

protected DeviceCareService getDeviceCareService(){
        DeviceCareService service = null;
        try{
            Object obj = getContext().lookup("ejb/DeviceCareService");
            DeviceCareServiceHome home = (DeviceCareServiceHome) PortableRemoteObject.narrow(obj,DeviceCareServiceHome.class);
           
            service = home.create();
        }catch(Exception e){
            e.printStackTrace();
        }
        return service;
}

最后是web service接口,其实跟上面的原理都是一样的。

 

我的疑问是这种集成测试是正规军的做法吗?是不是有更好的方式来做。

 

也跟QA的同志聊过,他们有些测试其实就是这种测试方式,所以会不会有越俎代庖之嫌?

 

其实困扰我的最大问题是如何做数据清理,因为这种情况下产生的数据都是数据库里面的真实数据,而我们的数据库有些表是不能进行简单的删除的。所以这些集成测试都是每次重复数据准备,不进行数据的清理。

 

还有一个疑问是,有没有必要检查集成测试过程中的一些状态?

 

疑问太多,暂且留在这儿吧。

分享到:
评论

相关推荐

    teamcity-ant脚本.rar

    TeamCity是一款强大的持续集成(CI)/持续部署(CD)工具,它可以帮助开发团队自动构建、测试和部署软件。在TeamCity中,Ant脚本扮演着至关重要的角色,因为Ant是Java项目常用的构建工具,能够定义和执行构建过程。...

    Flex持续集成之单元测试

    在Flex项目中,我们可以使用如Hudson、Jenkins或TeamCity等CI工具,它们可以自动构建项目、运行测试并报告结果,极大地提高了开发效率。 压缩包内的"Flash持续集成自动化单元测试_软件测试_酷勤网.htm"和"持续集成...

    软件工程中的软件测试自动化与持续集成1.pptx

    - **持续集成工具**:如Jenkins、Travis CI、TeamCity等,提供强大的CI/CD功能。 - **容器化**:通过容器技术实现应用的轻量化部署,便于管理和扩展。 - **自动化测试框架**:为自动化测试提供支持,提高测试效率。 ...

    cake-teamcity:TeamCity的蛋糕整合

    标题中的“cake-teamcity:TeamCity的蛋糕整合”指的是将Cake构建系统与TeamCity持续集成服务器进行集成的实践。Cake是一种基于.NET Framework的构建脚本语言,它使用C#语法,使得编写构建脚本变得更加简单和高效。而...

    teamcity-subproject-test

    TeamCity是一款流行的持续集成(CI)和持续部署(CD)工具,它允许开发者自动化构建、测试和部署软件。在这个项目中,"subproject"可能指的是在单个TeamCity配置中管理的多个独立但相互关联的代码库或组件。 描述中...

    TeamCity.Play

    TeamCity是一款功能强大的持续集成(CI)和持续部署(CD)服务器,主要应用于Java开发环境。它由JetBrains公司开发,旨在帮助软件开发团队提高代码质量和交付效率。TeamCity不仅支持Java,还能够处理多种编程语言和...

    example-teamcity

    `example-teamcity`是一个基于Java技术构建的示例项目,旨在展示如何配置和使用TeamCity作为一个持续集成和持续部署(CI/CD)工具。TeamCity是由JetBrains公司开发的一款强大的企业级CI/CD服务器,它能够自动化软件...

    team-city-first-test-project

    "Team City首测项目"是一个基于Python的持续集成与持续部署(CI/CD)实践案例。Team City是由JetBrains开发的一款强大的持续集成服务器,它能够自动化构建、测试和部署软件,确保代码的质量和项目的稳定性。在这个项目...

    grunt-tslint-teamcity:带有 teamcity 记者的 TypeScript linter

    通过集成 TSLint 和 TeamCity,开发者可以更方便地在持续集成过程中捕获和报告 TypeScript 代码的质量问题。 Grunt 是一个基于任务的 JavaScript 构建工具,它允许开发者自动化诸如编译、测试、压缩等开发流程。`...

    CIDashboard:TeamCity资讯主页

    `CIDashboard`是一个基于`JavaScript`开发的项目,它为用户提供了关于TeamCity的定制化信息展示平台,也就是我们常说的持续集成(Continuous Integration, CI)系统的可视化界面。TeamCity是JetBrains公司推出的一款...

    行业分类-设备装置-一种基于Windows平台多服务器多应用的自动化测试方法.zip

    例如,可以采用Jenkins、TeamCity等持续集成工具来管理和调度这些测试任务,确保它们按照预定的顺序和条件执行。 多应用测试则需要考虑应用间的交互和依赖关系。测试过程中,不仅要确保单个应用的功能正确性,还要...

    自动化测试性能测试PDF教程

    - **持续集成工具**:如Jenkins、TeamCity等,可以与测试框架集成,实现自动化测试的持续运行。 ### 2. 性能测试基础 #### 2.1 性能测试的概念 性能测试旨在评估系统的性能特征,如响应时间、吞吐量、资源利用率等...

    某公司的测试系统

    2. **持续集成**:在C#测试系统中,持续集成工具如Jenkins或TeamCity可以帮助团队频繁地集成代码,确保每次代码更改后都能快速发现并修复问题。通过配置这些工具,可以在每次提交时自动运行测试,提供及时的反馈。 ...

    pr_demon:一个守护程序,用于监视来自Bitbucket的请求请求(PR)并触发Teamcity上PR的构建

    标题中的“pr_demon”是一个特定的工具,其主要功能是监控Bitbucket平台上的Pull Request (PR) 请求,并在检测到新的或更新的PR时自动触发Teamcity的持续集成(Continuous Integration, CI)构建。这个工具是实现...

    TeamCityDemo:团队城市演示构建源-Source City

    TeamCityDemo是一个基于TeamCity构建的开源项目,旨在为开发者提供一个展示TeamCity功能和用法的演示环境。TeamCity是由JetBrains开发的一款持续集成(CI/CD)工具,广泛应用于软件开发流程中,帮助团队高效地管理和...

    ASP.NET3.5最佳实践

    - 持续集成:通过持续集成工具如Jenkins或TeamCity,自动化构建、测试和部署流程,减少手动错误。 5. **郑淑芬的练习题解答** - 通过郑淑芬提供的练习题解答,开发者可以进一步巩固和应用所学的ASP.NET 3.5知识,...

    周纪海-从 DevOps到DevSecOps的落地实践.pdf

    - 持续集成工具:如Jenkins、TeamCity,持续集成应用构建。 - 自动化配置和发布工具:如Ansible、Puppet、Chef,自动部署和配置管理。 - 构建工具:如Maven、Gradle、Ants,自动化项目构建。 - 监控预警工具:如...

    NUnit 测试范例

    6. **持续集成**:NUnit可以轻松地集成到持续集成(CI)服务器,如Jenkins或TeamCity,确保每次构建时都运行测试。 ### 结论 NUnit作为.NET开发的重要辅助工具,帮助确保代码质量,通过自动化测试减少bug,并且随着...

    ASP.NET集成客户关系管理的企业网站的设计与开发(源代码+论文).rar

    7. **单元测试和持续集成**:为了确保代码质量和项目稳定性,开发者可能会使用Visual Studio的测试工具进行单元测试,并配合如Jenkins或TeamCity等工具进行持续集成。 8. **源代码版本控制**:在团队开发中,源代码...

Global site tag (gtag.js) - Google Analytics