我在此所说的集成测试其实就是项目对外的接口测试,包括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 +
"®Info="+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的同志聊过,他们有些测试其实就是这种测试方式,所以会不会有越俎代庖之嫌?
其实困扰我的最大问题是如何做数据清理,因为这种情况下产生的数据都是数据库里面的真实数据,而我们的数据库有些表是不能进行简单的删除的。所以这些集成测试都是每次重复数据准备,不进行数据的清理。
还有一个疑问是,有没有必要检查集成测试过程中的一些状态?
疑问太多,暂且留在这儿吧。
分享到:
- 2009-07-23 15:48
- 浏览 1204
- 评论(0)
- 论坛回复 / 浏览 (0 / 2034)
- 查看更多
相关推荐
TeamCity是一款强大的持续集成(CI)/持续部署(CD)工具,它可以帮助开发团队自动构建、测试和部署软件。在TeamCity中,Ant脚本扮演着至关重要的角色,因为Ant是Java项目常用的构建工具,能够定义和执行构建过程。...
在Flex项目中,我们可以使用如Hudson、Jenkins或TeamCity等CI工具,它们可以自动构建项目、运行测试并报告结果,极大地提高了开发效率。 压缩包内的"Flash持续集成自动化单元测试_软件测试_酷勤网.htm"和"持续集成...
- **持续集成工具**:如Jenkins、Travis CI、TeamCity等,提供强大的CI/CD功能。 - **容器化**:通过容器技术实现应用的轻量化部署,便于管理和扩展。 - **自动化测试框架**:为自动化测试提供支持,提高测试效率。 ...
标题中的“cake-teamcity:TeamCity的蛋糕整合”指的是将Cake构建系统与TeamCity持续集成服务器进行集成的实践。Cake是一种基于.NET Framework的构建脚本语言,它使用C#语法,使得编写构建脚本变得更加简单和高效。而...
TeamCity是一款流行的持续集成(CI)和持续部署(CD)工具,它允许开发者自动化构建、测试和部署软件。在这个项目中,"subproject"可能指的是在单个TeamCity配置中管理的多个独立但相互关联的代码库或组件。 描述中...
TeamCity是一款功能强大的持续集成(CI)和持续部署(CD)服务器,主要应用于Java开发环境。它由JetBrains公司开发,旨在帮助软件开发团队提高代码质量和交付效率。TeamCity不仅支持Java,还能够处理多种编程语言和...
`example-teamcity`是一个基于Java技术构建的示例项目,旨在展示如何配置和使用TeamCity作为一个持续集成和持续部署(CI/CD)工具。TeamCity是由JetBrains公司开发的一款强大的企业级CI/CD服务器,它能够自动化软件...
"Team City首测项目"是一个基于Python的持续集成与持续部署(CI/CD)实践案例。Team City是由JetBrains开发的一款强大的持续集成服务器,它能够自动化构建、测试和部署软件,确保代码的质量和项目的稳定性。在这个项目...
通过集成 TSLint 和 TeamCity,开发者可以更方便地在持续集成过程中捕获和报告 TypeScript 代码的质量问题。 Grunt 是一个基于任务的 JavaScript 构建工具,它允许开发者自动化诸如编译、测试、压缩等开发流程。`...
`CIDashboard`是一个基于`JavaScript`开发的项目,它为用户提供了关于TeamCity的定制化信息展示平台,也就是我们常说的持续集成(Continuous Integration, CI)系统的可视化界面。TeamCity是JetBrains公司推出的一款...
例如,可以采用Jenkins、TeamCity等持续集成工具来管理和调度这些测试任务,确保它们按照预定的顺序和条件执行。 多应用测试则需要考虑应用间的交互和依赖关系。测试过程中,不仅要确保单个应用的功能正确性,还要...
- **持续集成工具**:如Jenkins、TeamCity等,可以与测试框架集成,实现自动化测试的持续运行。 ### 2. 性能测试基础 #### 2.1 性能测试的概念 性能测试旨在评估系统的性能特征,如响应时间、吞吐量、资源利用率等...
2. **持续集成**:在C#测试系统中,持续集成工具如Jenkins或TeamCity可以帮助团队频繁地集成代码,确保每次代码更改后都能快速发现并修复问题。通过配置这些工具,可以在每次提交时自动运行测试,提供及时的反馈。 ...
标题中的“pr_demon”是一个特定的工具,其主要功能是监控Bitbucket平台上的Pull Request (PR) 请求,并在检测到新的或更新的PR时自动触发Teamcity的持续集成(Continuous Integration, CI)构建。这个工具是实现...
TeamCityDemo是一个基于TeamCity构建的开源项目,旨在为开发者提供一个展示TeamCity功能和用法的演示环境。TeamCity是由JetBrains开发的一款持续集成(CI/CD)工具,广泛应用于软件开发流程中,帮助团队高效地管理和...
- 持续集成:通过持续集成工具如Jenkins或TeamCity,自动化构建、测试和部署流程,减少手动错误。 5. **郑淑芬的练习题解答** - 通过郑淑芬提供的练习题解答,开发者可以进一步巩固和应用所学的ASP.NET 3.5知识,...
- 持续集成工具:如Jenkins、TeamCity,持续集成应用构建。 - 自动化配置和发布工具:如Ansible、Puppet、Chef,自动部署和配置管理。 - 构建工具:如Maven、Gradle、Ants,自动化项目构建。 - 监控预警工具:如...
6. **持续集成**:NUnit可以轻松地集成到持续集成(CI)服务器,如Jenkins或TeamCity,确保每次构建时都运行测试。 ### 结论 NUnit作为.NET开发的重要辅助工具,帮助确保代码质量,通过自动化测试减少bug,并且随着...
7. **单元测试和持续集成**:为了确保代码质量和项目稳定性,开发者可能会使用Visual Studio的测试工具进行单元测试,并配合如Jenkins或TeamCity等工具进行持续集成。 8. **源代码版本控制**:在团队开发中,源代码...