本文使用《springboot集成mybatis(一)》项目,依次介绍springboot测试、打包、部署。

大多数朋友是做后端的,也就是为其他系统或者前端UI提供Rest API服务。

那么Rest API怎么测试?

1)通过前端页面或者直接组装URL,然后使用浏览器提交表单。

2)通过专业的API测试软件、工具。如:postman,Jmeter等。

3)通过开发语言编写测试脚本,模拟Http请求。如:HttpURLConnection、HttpClient等。

4)通过单元测试工具(Junit、JTest等)。

1、springboot单元测试

在《springboot集成mybatis(一)》项目中,我们已经通过Junit编写了Dao层的测试案例。

Web层咱们需要借助于MockMvc来模拟Http请求测试。

提示:若只想测试某一个方法,请选中方法名再执行(Junit默认执行所有Test案例)。

@RunWith(SpringRunner.class)
@SpringBootTest
public class OrderControllerTests {
@Autowired
private WebApplicationContext context;
private MockMvc mvc; @Before
public void init() throws Exception {
//MockMvc注入spring容器,否则controller中注入的service、mapper均会报空指针
mvc = MockMvcBuilders.webAppContextSetup(context).build();
} //测试OrderController.add()方法
@Test
public void add() throws Exception {
//模拟请求参数
MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
params.add("orderNo", String.valueOf(System.currentTimeMillis()));
params.add("orderName", "订单名称");
params.add("amount", "100"); //通过MockMvc模拟post表单提交
mvc.perform(post("/order/add").accept(MediaType.APPLICATION_JSON).params(params))
.andExpect(status().isOk())
.andDo(print())
.andReturn();
} //测试OrderController.queryAll()方法
@Test
public void queryAll() throws Exception {
//通过MockMvc模拟post表单提交
mvc.perform(post("/order/queryAll").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andDo(print())
.andReturn();
}
}

2、springboot打包(maven)

2.1)Eclipse打包

选中项目点击鼠标右键 -> Run As -> Maven install

2.2)maven控制台打包(《windows平台安装maven》)

切换至项目pom.xml目录,执行命令:mvn install

2.3)通过Maven install插件打包时,Maven默认会执行所有Test案例。

如何跳过(不执行)测试案例?

在pom.xml配置文件中增加属性:

<properties>
  <skipTests>true</skipTests>
</properties>

或者执行命令时增加skip参数:

mvn install -Dmaven.test.skip=true

2.4)指定Maven打包类型

修改pom.xml配置文件中packaging属性。

2.4.1)构建jar包:

<packaging>jar</packaging>

2.4.2)构建war包:

<packaging>war</packaging>

2.4.3)构建war时,我们排除tomcat相关jar包

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>

3.springboot部署

3.1)部署jar包

通过java -jar启动(该方式启动后,停止服务比较麻烦)

nohup java -jar spring-boot-mybatis-0.0.1-SNAPSHOT.jar &

改进,将当前jar注册为服务

ln -s /部署目录/spring-boot-mybatis-0.0.1-SNAPSHOT.jar /etc/init.d/springbootmybatis

启动服务

service springbootmybatis start

3.2)部署war包

将构建好的war包放入tomcat/webapps目录下,并启动tomcat服务

3.3)如何重启?

3.3.1)tomcat部署的,进入tomcat安装目录/bin目录:

停止服务:./shutdown.sh

启动服务:./start.sh

3.3.2)jar包独立部署的:

停止服务:service springbootmybatis stop

启动服务:service springbootmybatis start

源代码:https://gitee.com/skychenjiajun/spring-boot

springboot测试、打包、部署的更多相关文章

  1. Spring Boot(十二):spring boot如何测试打包部署

    Spring Boot(十二):spring boot如何测试打包部署 一.开发阶段 1,单元测试 在开发阶段的时候最重要的是单元测试了,springboot对单元测试的支持已经很完善了. (1)在p ...

  2. Maven创建Web工程并执行构建/测试/打包/部署

    创建工程基本参考上一篇Java Application工程,不同的是命令参数变了,创建Web工程的命令如下: mvn archetype:generate -DgroupId=com.jsoft.te ...

  3. SpringBoot简单打包部署(附工程)

    前言 本文主要介绍SpringBoot的一些打包事项和项目部署以及在其中遇到一些问题的解决方案. SpringBoot打包 在SpringBoot打包这块,我们就用之前的一个web项目来进行打包. 首 ...

  4. springboot(十二):springboot如何测试打包部署

    有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发.调试.打包到最后的投产上线. 开发阶段 单元 ...

  5. springboot如何测试打包部署

    有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发.调试.打包到最后的投产上线. 开发阶段 单元 ...

  6. (转)Spring Boot(十二):Spring Boot 如何测试打包部署

    http://www.ityouknow.com/springboot/2017/05/09/spring-boot-deploy.html 有很多网友会时不时的问我, Spring Boot 项目如 ...

  7. Spring Boot(十二):Spring Boot 如何测试打包部署

    有很多网友会时不时的问我, Spring Boot 项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下 Spring Boot 如何开发.调试.打包到最后的投产上线. 开发阶段 ...

  8. SpringBoot项目打包部署

    部署方式 SpringBoot项目可以通过jar包或者war包部署在服务器上,因为jar包更适合前后端分离的项目,所以这里我们使用jar包的方式. 添加maven支持 <!-- 这个插件,可以将 ...

  9. springboot项目打包部署在指定的tomcat容器中

    1.首先需要修改项目的打包方式,将package改为war <packaging>war</packaging> 2.移除spring boot web中的嵌入式tomcat ...

  10. Springboot如何打包部署项目

    原文地址 目录 前言 1. 导入插件 2.idea中快速打包 3.java –jar运行项目 4.访问项目 5.发布到服务器 前言 用心写好每一篇文章,真心对待每一个读者 文章首发地址: www.ja ...

随机推荐

  1. java 单向链表实现

    1 class Node{//Node类 2 private String data; 3 private Node next; 4 public Node(String data){ 5 this. ...

  2. python全栈学习--day9(函数初始)

    Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也 ...

  3. JQuery操作option的添加、删除、取值

    1. $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发 2. var checkTex ...

  4. 记录python接口自动化测试--requests使用和基本方法封装(第一目)

    之前学习了使用jmeter+ant做接口测试,并实现了接口的批量维护管理(大概500多条用例),对"接口"以及"接口测试"有了一个基础了解,最近找了一些用pyt ...

  5. [福州大学]W班平时成绩排名

    评分链接 个人作业 第一次作业 http://www.cnblogs.com/1qazse4/p/7506448.html 第二次作业 http://www.cnblogs.com/1qazse4/p ...

  6. Thinkphp框架部署步骤

    Thinkphp框架部署步骤 thinkphp框架部署起来简单,但是由于步骤较多也容易遗忘: 这是安装了集成环境后的一个www根目录结构: 然后需要在这个目录下面创建一个文件夹做项目:thinkphp ...

  7. LightningChart最新版 v.8.3 全新发布,新功能使用教程。

    LightningChart最新版v.8.3全新发布,主要介绍以下五个新功能及使用教程.   1. 网格模型,三角鼠标追踪 Tracing MeshModels with mouse. Traced ...

  8. 新概念英语(1-133)Sensational news!

    Lesson 133 Sensational news! 爆炸性新闻! Listen to the tape then answer this question. What reason did Ka ...

  9. 三十天学不会TCP,UDP/IP网络编程 -- RTT的计算

    欢迎去gitbook(https://www.gitbook.com/@rogerzhu/)看到完整版. 如果对和程序员有关的计算机网络知识,和对计算机网络方面的编程有兴趣,虽然说现在这种“看不见”的 ...

  10. 证明二叉查找树所有节点的平均深度为O(logN)

    数据结构与算法分析(c语言描述)第4章 P78 概念一:一棵树所有节点的深度和称为内部路径长 令D(N)为一棵有N节点的树的内部路径长么,即有D(1)=0, 设一棵树的左子树的内部路径长为D(i),则 ...