前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springboot测试、打包、部署

springboot测试、打包、部署

作者头像
名山丶深处
发布2022-05-10 14:38:44
1.6K0
发布2022-05-10 14:38:44
举报
文章被收录于专栏:名山丶深处名山丶深处

本文使用《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案例)。

代码语言:javascript
复制
@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配置文件中增加属性:

代码语言:javascript
复制
<properties>
  <skipTests>true</skipTests>
</properties>

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

代码语言:javascript
复制
mvn install -Dmaven.test.skip=true

2.4)指定Maven打包类型

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

2.4.1)构建jar包:

代码语言:javascript
复制
<packaging>jar</packaging>

2.4.2)构建war包:

代码语言:javascript
复制
<packaging>war</packaging>

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

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

3.springboot部署

3.1)部署jar包

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

代码语言:javascript
复制
nohup java -jar spring-boot-mybatis-0.0.1-SNAPSHOT.jar &

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

代码语言:javascript
复制
ln -s /部署目录/spring-boot-mybatis-0.0.1-SNAPSHOT.jar /etc/init.d/springbootmybatis

启动服务

代码语言:javascript
复制
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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档