基于Spring+IDEA+Maven搭建测试项目

一、背景介绍

1.1公司相关技术

  • Git:是一款免费的开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,方便多人集成开发
  • Maven:是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具,同时还提供了高级项目管理工具
  • Jira:是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域
  • Dubbo:是阿里巴巴公司一个开源的分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,内部系统间同步请求使用,可以和spring框架无缝集成
  • Zookeeper:分布式环境下的协调工具。开源的分布式应用程序协调服务,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等
  • MQ:消息队列,应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,无需专用连接来链接它们。分为rabbitMq、kafkaMq,分布式环境下的异步消息系统,解决系统相互依赖的耦合情况
  • Redis:非关系型数据库的一种,可以当做缓存使用,减少应用系统对数据库的访问提高系统处理速度。开源,支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。支持主从同步
  • Nginx:http协议的分布式协调系统。轻量级、高性能的HTTP和反向代理服务器及电子邮件(IMAP/POP3)代理服务器。占有内存少,并发能力强、负载均衡
  • FastDFS:开源的轻量级分布式文件管理系统,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,主要解决大容量存储和负载均衡的问题
  • Jenkins:项目自动发布工具,持续集成,开源
  • IDEA:全称IntelliJ IDEA,Java语言开发的集成环境之一,业界公认最好的IDE之一

1.2两类接口测试

公司主要面对B端客户,对外提供的产品主要是接口,所以测试人员在测试过程中主要测试对象是接口。根据实际工作中所见,目前主要有两大类接口:

  1. 基于HTTP协议的接口,以对外提供给商户为主(会涉及到加密和解密)
  2. 基于RPC框架的Dubbo接口,以内部系统间调用为主

针对上述两类接口,本文总结了当前公司内部常用的一种测试方式:即搭建测试项目,通过代码来进行测试。好处有四:

  • 针对HTTP协议接口,加解密方便,调用灵活,需要时只调用相关方法即可
  • 快速增加Dubbo类接口测试脚本(目前市场上能够进行该类接口的测试工具需要一定的二次开发)
  • 长期使用java代码测试,有利于提高QA人员技术思路、技术功底和技术视野
  • 便于后期实现接口自动化测试

二、准备工作

2.1安装准备

搭建测试项目前需要安装一些软件:

集成开发环境IDEA(本文以IDEA为例,也可使用eclipse等其他IDE,实现方法类似)

Java开发包:JDK,安装并调试成功

配置项目管理工具:Maven,安装并配置好环境变量,调试成功

2.1技术准备

搭建过程中,用到如下知识:

  • Java
  • Spring
  • Maven
  • Dubbo
  • Zookeeper

不要求完全掌握,但需要了解其作用和简单用法,可参照1.1章节介绍。具体细节请通过其他途径深入了解

三、具体搭建

3.1 基础搭建

3.1.1 新建项目

启动IDEA,选择Create New
Project

3.1.2 项目原型选择

左侧选择Maven

Project SDK:选择本机安装的java,如果如果Project SDK是None,则通过New本地安装Java的根目录,如笔者Java安装根目录为:D:\Program Files (x86)\Java

勾选:Create
from archetype,

选择原型:org.apache.maven.archetypes:maven-archetype-webapp,点击Next

说明:这里选择的是从原型创建一个Web动态项目

3.1.3 确定项目坐标

确定当前项目的maven坐标:GroupId和ArtifactId,确保GroupId+ArtifactId唯一

填写好之后,点击Next

3.1.4 Maven项目配置

Maven home directory:选择本机安装的Maven版本

User settings file:maven的配置文件,默认是本机个人当前用户.m2目录,如笔者默认目:C:\Users\BF100400\.m2\目录下,可更改为自己实际放置的目录,也可把setting.xml配置文件拷贝至默认目录

Local repository:本地存放jar包的仓库,该路径是读取User settings file配置文件中的<localRepository>配置,只要User settings
file选择正确,该项可不用管

建议增加键值配置参数archetypeCatalog=internal,如果不添加此参数,在maven生成骨架的时候将会非常慢,甚至直接卡主

具体意思:archetypeCatalog表示插件使用的archetype元数据,不加这个参数时默认为remote,local,即中央仓库archetype元数据,由于中央仓库的archetype太多了,所以导致很慢,指定internal来表示仅使用内部元数据

配置好之后点击Next

3.1.5 设置项目名称

设置Project name 和 Module
name,以及项目放置的位置location,名字见名知义即可。设置好之后,点击Finish

说明:如果创建的项目名称没有对应的目录,可能就会弹出如图所示提示框。不用理会,点击OK后会自动在本地创建对应目录。(也可在创建之前就在本地想要保存的目录下创建文件夹,和项目名称对应起来,这样就不会出现该提示)

3.1.6 Maven自动导入设置

首次创建项目,加载相对较慢,因为有很多相关文件和插件需要下载。无需着急,慢慢等待其下载完成。否则自动创建的项目没有src目录

项目加载完成后,点击下Enable
Auto-Import,这样后续maven的pom.xml有配置更改后会自动刷新

3.1.7 增加测试目录

因测试人员基本只写测试代码,所以无需配置tomcat服务器(如需可自行搜索方法)

在src目录下右键-->New-->Directory,增加test目录

设置test为测试根目录

3.1.8 配置pom.xml

Pom中在项目生成之初默认Junit配置,除此之外还需要加入一些常用依赖,主要包含:

Springframework,mybatis,mysql,c3p0,jdbcdslog,dubbo,logback,lombok,log4j,dfs-client,zkclient等

详细dependency可见附件maven中常用依赖包dependency.txt

3.1.9 配置文件新增

在src/resources目录下新增spring目录,新增application-context.xml配置文件

3.1.10 配置文件获取

配置项目启动需要加载的本地配置文件,配置文件中包含JDBC、zk等配置信息。该文件可以在对应应用的linux部署机器上找到,一般在/data目录下,不清楚的可以咨询开发同事

下载该文件至本地,然后在本地创建对应目录,要求必须和当前测试项目在相同磁盘下,文件名称则随意

3.1.11 配置web.xml

统一编码配置:UTF-8

配置监听器:ContextLoaderListener

指定加载项目配置文件路径和名称

详细可参考附件web.xml

3.1.12 Dubbo消费者配置

在src/spring/目录下创建dubbo-consumer.xml配置文件,并且在application-context.xml中加入导入dubbo-consumer.xml配置,如下图所示:

dubbo-consumer.xml配置详细可参考附件

3.1.13 logback.xml配置

日志配置,详细可参考附件logback.xml

3.1.14 配置bean目录

增加测试目录,配置自动注册bean目录

3.2 项目实战

3.1介绍了测试项目基本框架搭建,下面以ma-query中接口MaMemberManagerService的 Result<Boolean> insertMemberIndividual(MemberIndividualReqDTO
memberIndividualReqDTO)方法为例,说明具体的测试相关配置和方法

说明:下面是以dubbo类接口为例,读者可根据自己公司内部接口进行尝试。HTTP接口相对简单,可自行搜索研究,本文不做介绍,如有问题可联系笔者,联系微信:125270461

3.2.1 下载测试目标jar包

在pom.xml中增加ma-query项目依赖,maven会自动下载,确保下载成功

3.2.2 配置dubbo消费者

3.2.3 增加测试类

3.2.4 使用注解的方式加载配置文件

3.2.5创建测试方法并调用

3.2.6测试方法调试

执行测试方法,查看服务日志,能调通即OK

四、注意事项

4.1 Maven依赖配置

测试中碰到的maven依赖主要有两种:

4.1.1公共依赖

可在maven官方仓库中搜索,地址:http://mvnrepository.com/

如:需要spring-context,通过下图所示方法找到该依赖坐标后,拷贝至项目pom.xml中的<dependencies></dependencies>中即可

4.1.2测试依赖

如:ma-query项目对应接口的jar包或者相关联的jar包

① 开发接口文档中会包含依赖信息,如没有,可向对应开发咨询

② 获取对应依赖的坐标,一般去所在公司中央仓库中搜索

4.2配置文件加载

上文中使用注解方式注入bean,也可使用ApplicationContext,示例如下:

4.3配置文件加载优化

当同一个测试项目中需要添加多个测试应用时,可以抽象一个父类,在父类中加载配置文件,并且注入bean,其余测试类继承该父类,只负责具体的测试方法即可。具体如下:

原文地址:https://www.cnblogs.com/xiuxingzhe/p/9250737.html

时间: 2024-10-25 01:07:01

基于Spring+IDEA+Maven搭建测试项目的相关文章

02.基于IDEA+Spring+Maven搭建测试项目--Maven的配置文件settings.xml

1 <?xml version="1.0" encoding="UTF-8"?> 2 <settings xmlns="http://maven.apache.org/SETTINGS/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org

04.基于IDEA+Spring+Maven搭建测试项目--配置web.xml

1 <!DOCTYPE web-app PUBLIC 2 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 3 "http://java.sun.com/dtd/web-app_2_3.dtd" > 4 5 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 6 xmlns="htt

02.基于IDEA+Spring+Maven搭建测试项目--配置logback.xml

1 <?xml version="1.0" encoding="UTF-8"?> 2 <configuration> 3 <!-- 控制台日志打印,测试环境和调试使用,发布生产需注释 --> 4 <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 5 <encoder charset=&q

03.基于IDEA+Spring+Maven搭建测试项目--常用dependency

<!--常用的依赖配置--> <!--未展示完整的pom.xml文件内容--> <properties> <java.version>1.8</java.version> <java.encoding>UTF-8</java.encoding> <org.springframework.version>4.2.4.RELEASE</org.springframework.version> <o

02.基于IDEA+Spring+Maven搭建测试项目--配置dubbo-consumer.xml

1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:dubbo="http://code.alibabatech.com/

04.基于IDEA+Spring+Maven搭建测试项目--配置application-context.xml

1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework

基于spring打包 maven 打包jar项目

J2EE项目开发 一般使用tomcat等servlet容器,有些自动化的任务却不需要放在servlet容器中, 把任务打包成jar会更方便部署 使用Maven打包Spring的jar包

Maven 搭建 SSM 项目 (oracle)

简单谈一下maven搭建 ssm 项目 (使用数据库oracle,比 mysql 难,所以这里谈一下) 在创建maven 的web项目时,常常会缺了main/java , main/test 两个文件夹. 解决方法: ① : 在项目上右键选择properties,然后点击java build path,在Librarys下,编辑JRE System Library,选择workspace default jre就可以了. (推荐使用这种) ② :手动创建 目录.切换视图采用Navigator视图

如何使用maven搭建web项目

博客园注册了有二十多天了,还没有写过博客,今天就发一篇,也便于后面查找笔记. 我个人已经做了几年的java web开发了,由于所在的公司是业务型公司,用的都是一些老旧的稳定技术,很少接触到稍微新点的内容, 经过几年的不进则退,自己的技术能力已经开始慢慢的被时代潮流淘汰.为了在大浪淘沙中能生存下来,自己要好好加油,从基本内容开始,稳步沉淀,更新自己的技术库. 不求一口吃个大胖子,只求每天进步一点点. 废话不多说,言归正传.如何使用maven搭建web项目呢? 第一步:首先创建一个maven项目 创