本文使用《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