簡介:
目錄結構如圖:
一、環境准備
1、安裝jdk:
安裝包官網上下載:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 選1.8的就可以,其他的沒有嘗試過
安裝配置教程可參考:https://www.cnblogs.com/kelley-2020/p/12786104.html 也可以自行百度,遍地都是教程
查看java是否安裝成功的命令:Windows + R鍵,輸入cmd,進入命令行界面 輸入命令:java -version
2、安裝Git:
Git下載官方地址為:https://git-scm.com/download/win
安裝配置教程可參考:https://www.cnblogs.com/ximiaomiao/p/7140456.html 當然也可以自己去百度
3、安裝IDEA:
官網下載地址: https://www.jetbrains.com/idea/
安裝教程可參考:http://c.biancheng.net/view/7592.html 自己百度也可以
4、下載Maven:
下載配置教程可參考:https://www.cnblogs.com/liuhongfeng/p/5057827.html
二、代碼管理和提交
1、克隆代碼到本地
git clone https://github.com/wen-5heht/huaxi-test.git
2、使用idea 打開對應的項目,查看項目,編寫用例
三、模塊
1、http類型的post接口請求
BaseRequest:post請求,使用的springboot的restTemplate
*restTemplatePostString * @param url * @param params * @return * @throws Exception */
public String restTemplatePostString(String url,Map<String, String> params,String token) throws Exception{
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.parseMediaType("application/json;charset=UTF-8"));
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
headers.add("token",token);
org.springframework.http.HttpEntity<Map<String, String>> request = new org.springframework.http.HttpEntity<>(params, headers);
ResponseEntity<String> response = restTemplate.postForEntity( url, request , String.class );
JSONObject json = JSONObject.parseObject(response.getBody());
return JSON.toJSONString(json, SerializerFeature.PrettyFormat);
}
登錄接口獲取token:
package com.huaxi.base; import com.alibaba.fastjson.JSONObject; import com.huaxi.api.LoginApi; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import java.util.HashMap; import java.util.Map; /** * @title: * @author: 2021/8/2017:57 * @date: 2021/8/2017:57 */ @Slf4j @Service public class LoginService { /** * 大眾端預發布環境賬號登錄 * @param accountNo * @return */ public String AppLogin(String accountNo){ HashMap<String ,String> params = new HashMap<>(); params.put("accountNo",accountNo); params.put("loginDeviceNum","Atce-SFvOw-nIUpUwdjMN7hHSUChBgfAm2o6PwVoQUIL"); params.put("loginDeviceType","APP"); params.put("loginDeviceUUID","c50e03b5-707f-4498-b1ac-9951d855ae29"); params.put("password","ZTz2K9uhlvwWxYtVdQsQDxjN3Le7keyWd018RUv+vTcPtZTs4P44ECdoThBKAtJthMbRDOdIzcDkC44M0rm8c86hLSgp9yFrjWWHSxkRY+zHqxGo8v8ymAjX2Wf/S+UNAgwI4sB7mnA7ahBOoCU1RRRCGpH6fBI+aUk+2Z5viLU="); params.put("appCode","HXGYAPP"); params.put("channelCode","PATIENT_ANDROID"); log.info("\n===============打印登錄接口的入參:===================\n" + params); RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.parseMediaType("application/json;charset=UTF-8")); headers.add("Accept", MediaType.APPLICATION_JSON.toString()); org.springframework.http.HttpEntity<Map<String, String> >request = new org.springframework.http.HttpEntity<>(params, headers); ResponseEntity<String> response = restTemplate.postForEntity( LoginApi.Account_Login, request , String.class ); JSONObject jsonObject = JSONObject.parseObject(response.getBody()); String token =jsonObject.getJSONObject("data").getString("token"); log.info("\n===================打印登錄接口返回的token:===================\n" + token); return token; } }
springboot啟動類框架配置加載:
package com.huaxi.huaxitest; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.ApplicationPidFileWriter; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.context.annotation.ImportResource; import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication @ServletComponentScan @ImportResource(locations = {"classpath*:applicationContext*.xml"}) @EnableScheduling @MapperScan("com.huaxi.dao") public class HuaxitestApplication { protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){ return builder.sources(HuaxitestApplication.class); } public static void main(String[] args) { SpringApplication springApplication = new SpringApplication(HuaxitestApplication.class); springApplication.addListeners(new ApplicationPidFileWriter()); springApplication.run(args); } }
service:封裝接口調用
package com.huaxi.service; import com.huaxi.api.ImageCloudAPI; import com.huaxi.base.BaseRequest; import com.huaxi.config.config; import com.huaxi.vo.ListExaminationVO; import com.huaxi.vo.QueryVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; @Service public class ImageCloudService extends config { @Autowired BaseRequest baseRequest; /** * 數字影像簡介頁面 * @param appCode * @param organCode * @param channelCode * @param appVersionCode * @param pageCode * @return * @throws Exception */
public String imageCloudPage(String appCode,String organCode,String channelCode,String appVersionCode,String pageCode,String token) throws Exception{
HashMap<String,String> params = new HashMap<>();
params.put("appCode",appCode);
params.put("organCode",organCode);
params.put("channelCode",channelCode);
params.put("appVersionCode",appVersionCode);
params.put("pageCode",pageCode);
String result = baseRequest.restTemplatePostString(ImageCloudAPI.Image_Cloud_Page,params,token);
return result;
}
}
api:可以直接用完整的URL,也可以根據域名+url
package com.huaxi.api; public interface ImageCloudAPI { /** * 數字影像簡介頁面 */ String Image_Cloud_Page = "https://hxgyapipre.cd120.info/cloud/hosplatcustomer/resource/page/query"; }
case:用例層,直接調用service的方法,繼承BaseTest
BaseTest:
package com.huaxi.base; import com.huaxi.huaxitest.HuaxitestApplication; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = HuaxitestApplication.class) public class BaseTest { }
用例:
package com.huaxi.huaxitest; import com.huaxi.base.BaseRequest; import com.huaxi.base.BaseTest; import com.huaxi.base.CheckPoint; import com.huaxi.service.ImageCloudService; import lombok.extern.slf4j.Slf4j; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; @Slf4j public class ImageCloudTestCase extends BaseTest { @Autowired ImageCloudService imageCloudService; @Autowired BaseRequest baseRequest;
@Test
public void test001() throws Exception{
String token = loginService.AppLogin("18683571131");
String appCode = "HXGYAPP";
String organCode = "PUBLIC";
String channelCode = "PATIENT_WECHAT";
String appVersionCode = "1.0.0";
String pageCode = "image_cloud_page";
String result = imageCloudService.imageCloudPage(appCode,organCode,channelCode,appVersionCode,pageCode,token);
log.info("影像雲簡介頁返回內容:" + result);
CheckPoint.setResult(result);
CheckPoint.assertEquals("對比msg","操作成功","$.msg");
CheckPoint.assertEquals("對比code","1","$.code");
CheckPoint.assertEquals("對比errCode","0","$.errCode");
CheckPoint.check();
}
}