springboot测试、打包、部署
本文使用《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