提交 e36c515a authored 作者: mry's avatar mry

1111

上级
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
### Java template
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
### Example user template template
### Example user template
# IntelliJ project files
.idea
*.iml
out
gen
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.3/apache-maven-3.8.3-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar
差异被折叠。
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
if "%MVNW_VERBOSE%" == "true" (
echo Found %WRAPPER_JAR%
)
) else (
if not "%MVNW_REPOURL%" == "" (
SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
)
powershell -Command "&{"^
"$webclient = new-object System.Net.WebClient;"^
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
"}"^
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
"}"
if "%MVNW_VERBOSE%" == "true" (
echo Finished downloading %WRAPPER_JAR%
)
)
@REM End of extension
@REM Provide a "standardized" way to retrieve the CLI args that will
@REM work with both Windows and non-Windows executions.
set MAVEN_CMD_LINE_ARGS=%*
%MAVEN_JAVA_EXE% ^
%JVM_CONFIG_MAVEN_PROPS% ^
%MAVEN_OPTS% ^
%MAVEN_DEBUG_OPTS% ^
-classpath %WRAPPER_JAR% ^
"-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
%WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%"=="on" pause
if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
cmd /C exit /B %ERROR_CODE%
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>org.matrix.antotest</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>demo</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.39</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.10</version>
</dependency>
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>3.1.2</version>
</dependency>
<dependency>
<groupId>com.relevantcodes</groupId>
<artifactId>extentreports</artifactId>
<version>2.41.2</version>
</dependency>
<dependency>
<groupId>com.vimalselvam</groupId>
<artifactId>testng-extentsreport</artifactId>
<version>1.3.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.4.0</version>
</plugin>
</plugins>
</build>
</project>
package org.matrix.autotest;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author mry
*/
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
package org.matrix.autotest.config;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
/**
* MetaFieldHandler.
* 元数据处理器,用于处理自动填充的字段
*
* @author Matrix <xhyrzldf@gmail.com>
* @since 2021/11/22 at 7:52 下午
*/
@Component
public class MetaFieldHandler implements MetaObjectHandler {
/**
* 创建时设置创建时间
* @param metaObject 数据库原始对象
*/
@Override
public void insertFill(MetaObject metaObject) {
this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());
this.strictInsertFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
}
/**
* 更新时设置更新时间
* @param metaObject 数据库原始对象
*/
@Override
public void updateFill(MetaObject metaObject) {
this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
}
}
package org.matrix.autotest.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* @author mry
*/
@Configuration
public class MyConfiguration {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*")
.allowedMethods("GET", "POST", "DELETE", "PUT", "PATCH")
.exposedHeaders("access-control-allow-headers",
"access-control-allow-methods",
"access-control-allow-origin",
"access-control-max-age",
"X-Frame-Options")
.allowCredentials(true)
.maxAge(3600);
}
};
}
}
package org.matrix.autotest.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @author mry
*/
@Configuration
@EnableSwagger2
public class SwaggerConfigApi {
@Bean
public Docket createRestApi(){
return new Docket(DocumentationType.SWAGGER_2)
//将api的单元信息者只为包含在json ResourceListing响应中。
.apiInfo(apiInfo())
//选择哪些接口作为swagger的doc发布
.select()
.paths(PathSelectors.any())
.build();
}
public ApiInfo apiInfo(){
return new ApiInfoBuilder()
//标题
.title("自动测试系统CRUD")
//简介
.description("自动测试系CRUD统接口文档")
//版本
.version("1.0")
.build();
}
}
package org.matrix.autotest.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.matrix.autotest.entity.Action;
import org.matrix.autotest.service.ActionService;
import org.matrix.autotest.utils.CommonResult;
import org.matrix.autotest.utils.CommonResultObj;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 动作 前端控制器
* </p>
*
* @author mry
* @since 2022-01-07
*/
@CrossOrigin
@RestController
@RequestMapping("/actions")
@Api(tags = "对动作action的基本操作")
public class ActionController {
private final ActionService actionService;
public ActionController(ActionService actionService) {
this.actionService = actionService;
}
/**
* 查询所有动作
*
* @return 查询到的所有动作
*/
@ApiOperation(value = "查询所有动作")
@GetMapping
public ResponseEntity<CommonResultObj<List<Action>>> findAllAction() {
List<Action> results = actionService.findAllAction();
if (results != null && results.size() != 0) {
return CommonResult.success(results, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
/**
* 根据id查询动作
*
* @param id 动作Id
* @return 动作
*/
@ApiOperation(value = "根据id查询动作")
@GetMapping("/{id}")
public ResponseEntity<CommonResultObj<Action>> findByIdAction(@PathVariable Integer id) {
Action result = actionService.findByIdAction(id);
if (result != null) {
return CommonResult.success(result, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
/**
* 添加动作
*
* @param action 动作
* @return 添加的动作
*/
@ApiOperation(value = "添加动作")
@PostMapping
public ResponseEntity<CommonResultObj<Action>> insertAction(@RequestBody Action action) {
int i = actionService.insertAction(action);
if (i != 0) {
return CommonResult.success(action, "添加成功");
} else {
return CommonResult.failed("添加失败");
}
}
/**
* 修改动作
*
* @param action 动作
* @return 修改后的动作
*/
@ApiOperation(value = "修改动作")
@PutMapping
public ResponseEntity<CommonResultObj<Action>> updateAction(@RequestBody Action action) {
int i = actionService.updateAction(action);
if (i != 0) {
return CommonResult.success(action, "修改成功");
} else {
return CommonResult.failed("修改失败");
}
}
/**
* 删除动作
*
* @param id 动作id
* @return 是否删除成功
*/
@ApiOperation(value = "根据id删除动作")
@DeleteMapping("/{id}")
public ResponseEntity<CommonResultObj<String>> deleteAction(@PathVariable Integer id) {
int i = actionService.deleteAction(id);
if (i != 0) {
return CommonResult.success("id: " + id + "已删除", "删除成功");
} else {
return CommonResult.failed("删除失败,或不存在需要删除的数据");
}
}
/**
* 根据项目id查询动作
*
* @param projectId 项目id
* @return 符合项目id的动作
*/
@ApiOperation(value = "根据项目id查询所有")
@GetMapping("/project/{projectId}")
public ResponseEntity<CommonResultObj<List<Action>>> findByProjectIdAction(@PathVariable Integer projectId) {
List<Action> results = actionService.findByProjectIdAction(projectId);
if (results != null && results.size() != 0) {
return CommonResult.success(results, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
/**
* 根据行为id查询动作
*
* @param moveId 行为id
* @return 符合行为id的动作
*/
@ApiOperation(value = "根据行为id查询所有")
@GetMapping("/move/{moveId}")
public ResponseEntity<CommonResultObj<List<Action>>> findByMoveIdAction(@PathVariable Integer moveId) {
List<Action> results = actionService.findByMoveIdAction(moveId);
if (results != null && results.size() != 0) {
return CommonResult.success(results, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
}
package org.matrix.autotest.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.matrix.autotest.entity.Connect;
import org.matrix.autotest.service.ConnectService;
import org.matrix.autotest.utils.CommonResult;
import org.matrix.autotest.utils.CommonResultObj;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author mry
* @since 2022-01-07
*/
@CrossOrigin
@RestController
@RequestMapping("/connects")
@Api(tags = "对连接池connect的基本操作")
public class ConnectController {
private final ConnectService connectService;
public ConnectController(ConnectService connectService) {
this.connectService = connectService;
}
/**
* 查询所有连接池
*
* @return 查询到的所有连接池
*/
@ApiOperation(value = "查询所有连接池")
@GetMapping
public ResponseEntity<CommonResultObj<List<Connect>>> findAllConnect() {
List<Connect> results = connectService.findAllConnect();
if (results != null && results.size() != 0) {
return CommonResult.success(results, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
/**
* 根据id查询连接池
*
* @param id 连接池Id
* @return 连接池
*/
@ApiOperation(value = "根据id查询连接池")
@GetMapping("/{id}")
public ResponseEntity<CommonResultObj<Connect>> findByIdConnect(@PathVariable Integer id) {
Connect result = connectService.findByIdConnect(id);
if (result != null) {
return CommonResult.success(result, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
/**
* 添加连接池
*
* @param connect 连接池
* @return 添加的连接池
*/
@ApiOperation(value = "添加连接池")
@PostMapping
public ResponseEntity<CommonResultObj<Connect>> insertConnect(@RequestBody Connect connect) {
int i = connectService.insertConnect(connect);
if (i != 0) {
return CommonResult.success(connect, "添加成功");
} else {
return CommonResult.failed("添加失败");
}
}
/**
* 修改连接池
*
* @param connect 连接池
* @return 修改后的连接池
*/
@ApiOperation(value = "修改连接池")
@PutMapping
public ResponseEntity<CommonResultObj<Connect>> updateConnect(@RequestBody Connect connect) {
int i = connectService.updateConnect(connect);
if (i != 0) {
return CommonResult.success(connect, "修改成功");
} else {
return CommonResult.failed("修改失败");
}
}
/**
* 删除连接池
*
* @param id 连接池id
* @return 是否删除成功
*/
@ApiOperation(value = "根据id删除连接池")
@DeleteMapping("/{id}")
public ResponseEntity<CommonResultObj<String>> deleteConnect(@PathVariable Integer id) {
int i = connectService.deleteConnect(id);
if (i != 0) {
return CommonResult.success("id: " + id + "已删除", "删除成功");
} else {
return CommonResult.failed("删除失败,或不存在需要删除的数据");
}
}
}
package org.matrix.autotest.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.matrix.autotest.entity.DynamicVariable;
import org.matrix.autotest.service.DynamicVariableService;
import org.matrix.autotest.utils.CommonResult;
import org.matrix.autotest.utils.CommonResultObj;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author mry
* @since 2022-01-07
*/
@CrossOrigin
@RestController
@RequestMapping("/dynamicVariables")
@Api(tags = "对动参dynamic_variable的基本操作")
public class DynamicVariableController {
private final DynamicVariableService dynamicVariableService;
public DynamicVariableController(DynamicVariableService dynamicVariableService) {
this.dynamicVariableService = dynamicVariableService;
}
/**
* 查询所有动态变量
*
* @return 查询到的所有动态变量
*/
@ApiOperation(value = "查询所有动态变量")
@GetMapping
public ResponseEntity<CommonResultObj<List<DynamicVariable>>> findAllDynamicVariable() {
List<DynamicVariable> results = dynamicVariableService.findAllDynamicVariable();
if (results != null && results.size() != 0) {
return CommonResult.success(results, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
/**
* 根据id查询动态变量
*
* @param id 动态变量Id
* @return 动态变量
*/
@ApiOperation(value = "根据id查询动态变量")
@GetMapping("/{id}")
public ResponseEntity<CommonResultObj<DynamicVariable>> findByIdDynamicVariable(@PathVariable Integer id) {
DynamicVariable result = dynamicVariableService.findByIdDynamicVariable(id);
if (result != null) {
return CommonResult.success(result, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
/**
* 添加动态变量
*
* @param dynamicVariable 动态变量
* @return 添加的动态变量
*/
@ApiOperation(value = "添加动态变量")
@PostMapping
public ResponseEntity<CommonResultObj<DynamicVariable>> insertDynamicVariable(@RequestBody DynamicVariable dynamicVariable) {
int i = dynamicVariableService.insertDynamicVariable(dynamicVariable);
if (i != 0) {
return CommonResult.success(dynamicVariable, "添加成功");
} else {
return CommonResult.failed("添加失败");
}
}
/**
* 修改动态变量
*
* @param dynamicVariable 动态变量
* @return 修改后的动态变量
*/
@ApiOperation(value = "修改动态变量")
@PutMapping
public ResponseEntity<CommonResultObj<DynamicVariable>> updateDynamicVariable(@RequestBody DynamicVariable dynamicVariable) {
int i = dynamicVariableService.updateDynamicVariable(dynamicVariable);
if (i != 0) {
return CommonResult.success(dynamicVariable, "修改成功");
} else {
return CommonResult.failed("修改失败");
}
}
/**
* 删除动态变量
*
* @param id 动态变量id
* @return 是否删除成功
*/
@ApiOperation(value = "根据id删除动态变量")
@DeleteMapping("/{id}")
public ResponseEntity<CommonResultObj<String>> deleteDynamicVariable(@PathVariable Integer id) {
int i = dynamicVariableService.deleteDynamicVariable(id);
if (i != 0) {
return CommonResult.success("id: " + id + "已删除", "删除成功");
} else {
return CommonResult.failed("删除失败,或不存在需要删除的数据");
}
}
/**
* 根据项目id查询动作
*
* @param projectId 项目id
* @return 符合项目id的动作
*/
@ApiOperation(value = "根据项目id查询所有")
@GetMapping("/project/{projectId}")
public ResponseEntity<CommonResultObj<List<DynamicVariable>>> findByProjectIdDynamicVariable(@PathVariable Integer projectId) {
List<DynamicVariable> results = dynamicVariableService.findByProjectIdDynamicVariable(projectId);
if (results != null && results.size() != 0) {
return CommonResult.success(results, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
}
\ No newline at end of file
package org.matrix.autotest.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.matrix.autotest.entity.Environment;
import org.matrix.autotest.service.EnvironmentService;
import org.matrix.autotest.utils.CommonResult;
import org.matrix.autotest.utils.CommonResultObj;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 实例表,项目对应的环境实例,例如:实验室环境,开发环境等 前端控制器
* </p>
*
* @author mry
* @since 2022-01-07
*/
@CrossOrigin
@RestController
@RequestMapping("/environments")
@Api(tags = "对环境environment的基本操作")
public class EnvironmentController {
private final EnvironmentService environmentService;
public EnvironmentController(EnvironmentService environmentService) {
this.environmentService = environmentService;
}
/**
* 查询所有实例
*
* @return 查询到的所有实例
*/
@ApiOperation(value = "查询所有实例")
@GetMapping
public ResponseEntity<CommonResultObj<List<Environment>>> findAllEnvironment() {
List<Environment> results = environmentService.findAllEnvironment();
if (results != null && results.size() != 0) {
return CommonResult.success(results, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
/**
* 根据id查询实例
*
* @param id 实例Id
* @return 实例
*/
@ApiOperation(value = "根据id查询实例")
@GetMapping("/{id}")
public ResponseEntity<CommonResultObj<Environment>> findByIdEnvironment(@PathVariable Integer id) {
Environment result = environmentService.findByIdEnvironment(id);
if (result != null) {
return CommonResult.success(result, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
/**
* 添加实例
*
* @param environment 实例
* @return 添加的实例
*/
@ApiOperation(value = "添加实例")
@PostMapping
public ResponseEntity<CommonResultObj<Environment>> insertEnvironment(@RequestBody Environment environment) {
int i = environmentService.insertEnvironment(environment);
if (i != 0) {
return CommonResult.success(environment, "添加成功");
} else {
return CommonResult.failed("添加失败");
}
}
/**
* 修改实例
*
* @param environment 实例
* @return 修改后的实例
*/
@ApiOperation(value = "修改实例")
@PutMapping
public ResponseEntity<CommonResultObj<Environment>> updateEnvironment(@RequestBody Environment environment) {
int i = environmentService.updateEnvironment(environment);
if (i != 0) {
return CommonResult.success(environment, "修改成功");
} else {
return CommonResult.failed("修改失败");
}
}
/**
* 删除实例
*
* @param id 实例id
* @return 是否删除成功
*/
@ApiOperation(value = "根据id删除实例")
@DeleteMapping("/{id}")
public ResponseEntity<CommonResultObj<String>> deleteEnvironment(@PathVariable Integer id) {
int i = environmentService.deleteEnvironment(id);
if (i != 0) {
return CommonResult.success("id: " + id + "已删除", "删除成功");
} else {
return CommonResult.failed("删除失败,或不存在需要删除的数据");
}
}
/**
* 根据项目id查询动作
*
* @param projectId 项目id
* @return 符合项目id的动作
*/
@ApiOperation(value = "根据项目id查询所有")
@GetMapping("/project/{projectId}")
public ResponseEntity<CommonResultObj<List<Environment>>> findByProjectIdEnvironment(@PathVariable Integer projectId) {
List<Environment> results = environmentService.findByProjectIdEnvironment(projectId);
if (results != null && results.size() != 0) {
return CommonResult.success(results, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
}
package org.matrix.autotest.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.matrix.autotest.entity.Move;
import org.matrix.autotest.service.MoveService;
import org.matrix.autotest.utils.CommonResult;
import org.matrix.autotest.utils.CommonResultObj;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author mry
* @since 2022-01-07
*/
@CrossOrigin
@RestController
@RequestMapping("/moves")
@Api(tags = "对行为move的基本操作")
public class MoveController {
private final MoveService moveService;
public MoveController(MoveService moveService) {
this.moveService = moveService;
}
/**
* 查询所有行为
*
* @return 查询到的所有行为
*/
@ApiOperation(value = "查询所有行为")
@GetMapping
public ResponseEntity<CommonResultObj<List<Move>>> findAllMove() {
List<Move> results = moveService.findAllMove();
if (results != null && results.size() != 0) {
return CommonResult.success(results, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
/**
* 根据id查询行为
*
* @param id 行为Id
* @return 行为
*/
@ApiOperation(value = "根据id查询行为")
@GetMapping("/{id}")
public ResponseEntity<CommonResultObj<Move>> findByIdMove(@PathVariable Integer id) {
Move result = moveService.findByIdMove(id);
if (result != null) {
return CommonResult.success(result, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
/**
* 添加行为
*
* @param move 行为
* @return 添加的行为
*/
@ApiOperation(value = "添加行为")
@PostMapping
public ResponseEntity<CommonResultObj<Move>> insertMove(@RequestBody Move move) {
int i = moveService.insertMove(move);
if (i != 0) {
return CommonResult.success(move, "添加成功");
} else {
return CommonResult.failed("添加失败");
}
}
/**
* 修改行为
*
* @param move 行为
* @return 修改后的行为
*/
@ApiOperation(value = "修改行为")
@PutMapping
public ResponseEntity<CommonResultObj<Move>> updateMove(@RequestBody Move move) {
int i = moveService.updateMove(move);
if (i != 0) {
return CommonResult.success(move, "修改成功");
} else {
return CommonResult.failed("修改失败");
}
}
/**
* 删除行为
*
* @param id 行为id
* @return 是否删除成功
*/
@ApiOperation(value = "根据id删除行为")
@DeleteMapping("/{id}")
public ResponseEntity<CommonResultObj<String>> deleteMove(@PathVariable Integer id) {
int i = moveService.deleteMove(id);
if (i != 0) {
return CommonResult.success("id: " + id + "已删除", "删除成功");
} else {
return CommonResult.failed("删除失败,或不存在需要删除的数据");
}
}
/**
* 根据项目id查询动作
*
* @param projectId 项目id
* @return 符合项目id的动作
*/
@ApiOperation(value = "根据项目id查询所有")
@GetMapping("/project/{projectId}")
public ResponseEntity<CommonResultObj<List<Move>>> findByProjectIdMove(@PathVariable Integer projectId) {
List<Move> results = moveService.findByProjectIdMove(projectId);
if (results != null && results.size() != 0) {
return CommonResult.success(results, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
}
package org.matrix.autotest.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.matrix.autotest.entity.Project;
import org.matrix.autotest.service.ProjectService;
import org.matrix.autotest.utils.CommonResult;
import org.matrix.autotest.utils.CommonResultObj;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author mry
* @since 2022-01-07
*/
@CrossOrigin
@RestController
@RequestMapping("/projects")
@Api(tags = "对项目project的基本操作")
public class ProjectController {
private final ProjectService projectService;
public ProjectController(ProjectService projectService) {
this.projectService = projectService;
}
/**
* 查询所有项目
*
* @return 查询到的所有项目
*/
@ApiOperation(value = "查询所有项目")
@GetMapping
public ResponseEntity<CommonResultObj<List<Project>>> findAllProject() {
List<Project> results = projectService.findAllProject();
if (results != null && results.size() != 0) {
return CommonResult.success(results, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
/**
* 根据id查询项目
*
* @param id 项目Id
* @return 项目
*/
@ApiOperation(value = "根据id查询项目")
@GetMapping("/{id}")
public ResponseEntity<CommonResultObj<Project>> findByIdProject(@PathVariable Integer id) {
Project result = projectService.findByIdProject(id);
if (result != null) {
return CommonResult.success(result, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
/**
* 添加项目
*
* @param project 项目
* @return 添加的项目
*/
@ApiOperation(value = "添加项目")
@PostMapping
public ResponseEntity<CommonResultObj<Project>> insertProject(@RequestBody Project project) {
int i = projectService.insertProject(project);
if (i != 0) {
return CommonResult.success(project, "添加成功");
} else {
return CommonResult.failed("添加失败");
}
}
/**
* 修改项目
*
* @param project 项目
* @return 修改后的项目
*/
@ApiOperation(value = "修改项目")
@PutMapping
public ResponseEntity<CommonResultObj<Project>> updateProject(@RequestBody Project project) {
int i = projectService.updateProject(project);
if (i != 0) {
return CommonResult.success(project, "修改成功");
} else {
return CommonResult.failed("修改失败");
}
}
/**
* 删除项目
*
* @param id 项目id
* @return 是否删除成功
*/
@ApiOperation(value = "根据id删除项目")
@DeleteMapping("/{id}")
public ResponseEntity<CommonResultObj<String>> deleteProject(@PathVariable Integer id) {
int i = projectService.deleteProject(id);
if (i != 0) {
return CommonResult.success("id: " + id + "已删除", "删除成功");
} else {
return CommonResult.failed("删除失败,或不存在需要删除的数据");
}
}
}
package org.matrix.autotest.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.matrix.autotest.entity.TestCase;
import org.matrix.autotest.service.TestCaseService;
import org.matrix.autotest.utils.CommonResult;
import org.matrix.autotest.utils.CommonResultObj;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.testng.TestNG;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author mry
* @since 2022-01-07
*/
@CrossOrigin
@RestController
@RequestMapping("/testCases")
@Api(tags = "对用例test_case的基本操作")
public class TestCaseController {
private final TestCaseService testCaseService;
public TestCaseController(TestCaseService testCaseService) {
this.testCaseService = testCaseService;
}
/**
* 查询所有用例
*
* @return 查询到的所有用例
*/
@ApiOperation(value = "查询所有用例")
@GetMapping
public ResponseEntity<CommonResultObj<List<TestCase>>> findAllTestCase() {
List<TestCase> results = testCaseService.findAllTestCase();
if (results != null && results.size() != 0) {
return CommonResult.success(results, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
/**
* 根据id查询用例
*
* @param id 用例Id
* @return 用例
*/
@ApiOperation(value = "根据id查询用例")
@GetMapping("/{id}")
public ResponseEntity<CommonResultObj<TestCase>> findByIdTestCase(@PathVariable Integer id) {
TestCase result = testCaseService.findByIdTestCase(id);
if (result != null) {
return CommonResult.success(result, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
/**
* 添加用例
*
* @param testCase 用例
* @return 添加的用例
*/
@ApiOperation(value = "添加用例")
@PostMapping
public ResponseEntity<CommonResultObj<TestCase>> insertTestCase(@RequestBody TestCase testCase) {
int i = testCaseService.insertTestCase(testCase);
if (i != 0) {
return CommonResult.success(testCase, "添加成功");
} else {
return CommonResult.failed("添加失败");
}
}
/**
* 修改用例
*
* @param testCase 用例
* @return 修改后的用例
*/
@ApiOperation(value = "修改用例")
@PutMapping
public ResponseEntity<CommonResultObj<TestCase>> updateTestCase(@RequestBody TestCase testCase) {
int i = testCaseService.updateTestCase(testCase);
if (i != 0) {
return CommonResult.success(testCase, "修改成功");
} else {
return CommonResult.failed("修改失败");
}
}
/**
* 删除用例
*
* @param id 用例id
* @return 是否删除成功
*/
@ApiOperation(value = "根据id删除用例")
@DeleteMapping("/{id}")
public ResponseEntity<CommonResultObj<String>> deleteTestCase(@PathVariable Integer id) {
int i = testCaseService.deleteTestCase(id);
if (i != 0) {
return CommonResult.success("id: " + id + "已删除", "删除成功");
} else {
return CommonResult.failed("删除失败,或不存在需要删除的数据");
}
}
/**
* 根据项目id查询动作
*
* @param projectId 项目id
* @return 符合项目id的动作
*/
@ApiOperation(value = "根据项目id查询所有")
@GetMapping("/project/{projectId}")
public ResponseEntity<CommonResultObj<List<TestCase>>> findByProjectIdTestCase(@PathVariable Integer projectId) {
List<TestCase> results = testCaseService.findByProjectIdTestCase(projectId);
if (results != null && results.size() != 0) {
return CommonResult.success(results, "查询成功");
} else {
return CommonResult.failed("查询失败或无数据");
}
}
/**
* 执行测试用例
*
* @param name 用例名称
* @return 是否执行成功
*/
@ApiOperation(value = "执行测试用例")
@GetMapping("/start/{name}")
public void start(@PathVariable String name) {
List<String> suites = new ArrayList<String>();
suites.add("kt-script\\src\\main\\java\\org\\matrix\\" + name);
TestNG testNG = new TestNG();
testNG.setTestSuites(suites);
testNG.run();
}
}
package org.matrix.autotest.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.matrix.autotest.entity.Action;
/**
* <p>
* 动作 Mapper 接口
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Mapper
public interface ActionMapper extends BaseMapper<Action> {
}
package org.matrix.autotest.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.matrix.autotest.entity.Connect;
/**
* <p>
* Mapper 接口
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Mapper
public interface ConnectMapper extends BaseMapper<Connect> {
}
package org.matrix.autotest.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.matrix.autotest.entity.DynamicVariable;
/**
* <p>
* Mapper 接口
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Mapper
public interface DynamicVariableMapper extends BaseMapper<DynamicVariable> {
}
package org.matrix.autotest.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.matrix.autotest.entity.Environment;
/**
* <p>
* 实例表,项目对应的环境实例,例如:实验室环境,开发环境等 Mapper 接口
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Mapper
public interface EnvironmentMapper extends BaseMapper<Environment> {
}
package org.matrix.autotest.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.matrix.autotest.entity.Move;
/**
* <p>
* Mapper 接口
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Mapper
public interface MoveMapper extends BaseMapper<Move> {
}
package org.matrix.autotest.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.matrix.autotest.entity.Project;
/**
* <p>
* Mapper 接口
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Mapper
public interface ProjectMapper extends BaseMapper<Project> {
}
package org.matrix.autotest.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.matrix.autotest.entity.TestCase;
/**
* <p>
* Mapper 接口
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Mapper
public interface TestCaseMapper extends BaseMapper<TestCase> {
}
package org.matrix.autotest.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/**
* <p>
* 动作
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "动作表")
@TableName(value = "action")
public class Action {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ApiModelProperty(value = "ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 名称
*/
@ApiModelProperty(value = "名称")
private String name;
/**
* 行为ID
*/
@ApiModelProperty(value = "行为ID")
private Integer moveId;
/**
* 项目ID
*/
@ApiModelProperty(value = "项目ID")
private Integer projectId;
/**
* 备注
*/
@ApiModelProperty(value = "备注")
private String remark;
/**
* 类型 1为SQL,2为HTTP,3为CASE,4为WAIT_TIME
*/
@ApiModelProperty(value = "类型 1为SQL,2为HTTP,3为CASE,4为WAIT_TIME")
private Integer type;
/**
* 详细参数
*/
@ApiModelProperty(value = "详细参数")
private String detail;
/**
* 实例
*/
@ApiModelProperty(value = "实例")
private String env;
@ApiModelProperty(value = "添加时间")
private LocalDateTime createTime;
@ApiModelProperty(value = "更新时间")
private LocalDateTime updateTime;
}
package org.matrix.autotest.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "连接池表")
@TableName(value = "connect")
public class Connect {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ApiModelProperty(value = "ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 名称
*/
@ApiModelProperty(value = "名称")
private String name;
/**
* URL
*/
@ApiModelProperty(value = "URL")
private String url;
/**
* 账号
*/
@ApiModelProperty(value = "账号")
private String username;
/**
* 密码
*/
@ApiModelProperty(value = "密码")
private String password;
/**
* 所用驱动
*/
@ApiModelProperty(value = "所用驱动")
private String driver;
@ApiModelProperty(value = "添加时间")
private LocalDateTime createTime;
@ApiModelProperty(value = "更新时间")
private LocalDateTime updateTime;
}
package org.matrix.autotest.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "动态变量表")
@TableName(value = "dynamic_variable")
public class DynamicVariable {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ApiModelProperty(value = "ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 所属项目
*/
@ApiModelProperty(value = "所属项目")
private Integer projectId;
/**
* 取用字段
*/
@ApiModelProperty(value = "取用字段")
private String takenField;
/**
* 名称
*/
@ApiModelProperty(value = "名称")
private String name;
/**
* 动态变量类型 1为KV,2为SQL,3为CASE,4为HTTP
*/
@ApiModelProperty(value = "动态变量类型 1为KV,2为SQL,3为CASE,4为HTTP")
private Integer type;
/**
* 备注
*/
@ApiModelProperty(value = "备注")
private String remark;
/**
* 详细内容
*/
@ApiModelProperty(value = "详细内容")
private String detail;
@ApiModelProperty(value = "添加时间")
private LocalDateTime createTime;
@ApiModelProperty(value = "更新时间")
private LocalDateTime updateTime;
}
package org.matrix.autotest.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/**
* <p>
* 实例表,项目对应的环境实例,例如:实验室环境,开发环境等
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "实例表")
@TableName(value = "environment")
public class Environment {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ApiModelProperty(value = "ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 实例名称
*/
@ApiModelProperty(value = "实例名称")
private String name;
/**
* 参数名 (例如:env)
*/
@ApiModelProperty(value = "参数名 (例如:env)")
private String parameterName;
/**
* 项目ID
*/
@ApiModelProperty(value = "项目ID")
private Integer projectId;
/**
* 静态变量,以JSON的形式存储,例如({"name":"张三"})
*/
@ApiModelProperty(value = "静态变量,以JSON的形式存储,例如({\"name\":\"张三\"})")
private String variable;
/**
* ip,例如(http:www.abc.com)
*/
@ApiModelProperty(value = "ip,例如(http:www.abc.com)")
private String ip;
@ApiModelProperty(value = "添加时间")
private LocalDateTime createTime;
@ApiModelProperty(value = "更新时间")
private LocalDateTime updateTime;
}
package org.matrix.autotest.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "行为表")
@TableName(value = "move")
public class Move {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ApiModelProperty(value = "ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 名称
*/
@ApiModelProperty(value = "名称")
private String name;
/**
* 所属项目
*/
@ApiModelProperty(value = "所属项目")
private Integer projectId;
/**
* 备注
*/
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "添加时间")
private LocalDateTime createTime;
@ApiModelProperty(value = "更新时间")
private LocalDateTime updateTime;
}
package org.matrix.autotest.entity;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "项目表")
@TableName(value = "project")
public class Project {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ApiModelProperty(value = "ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 名称
*/
@ApiModelProperty(value = "名称")
private String name;
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "添加时间")
private LocalDateTime createTime;
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "更新时间")
private LocalDateTime updateTime;
}
package org.matrix.autotest.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "用例表")
@TableName(value = "test_case")
public class TestCase {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ApiModelProperty(value = "ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 名称
*/
@ApiModelProperty(value = "名称")
private String name;
/**
* 所属项目
*/
@ApiModelProperty(value = "所属项目")
private Integer projectId;
/**
* 用例类型 1为http
*/
@ApiModelProperty(value = "用例类型 1为http")
private Integer type;
/**
* 前置行动ID组,例如:1,2,3
*/
@ApiModelProperty(value = "前置行动ID组,例如:1,2,3")
private String moveBefore;
/**
* 后置行动ID组,例如:1,2,3
*/
@ApiModelProperty(value = "后置行动ID组,例如:1,2,3")
private String moveAfterCase;
/**
* 测试执行后行动ID组,例如:1,2,3
*/
@ApiModelProperty(value = "测试执行后行动ID组,例如:1,2,3")
private String moveAfterTest;
/**
* 是否进行异常检验,0为否,1为是
*/
@ApiModelProperty(value = "是否进行异常检验,0为否,1为是")
private Integer abnormalCheckpoint;
/**
* 是否进行非空检验,0为否,1为是
*/
@ApiModelProperty(value = "是否进行非空检验,0为否,1为是")
private Integer noEmptyCheckpoint;
/**
* 包含某字段检验(例如 张三,李四) 则对检查结果中是否包含张三或者李四
*/
@ApiModelProperty(value = "包含某字段检验(例如 张三,李四) 则对检查结果中是否包含张三或者李四")
private String containCheckpoint;
/**
* 不包含某字段检验(例如 张三,李四) 则对检查结果中是否不包含张三或者李四
*/
@ApiModelProperty(value = "不包含某字段检验(例如 张三,李四) 则对检查结果中是否不包含张三或者李四")
private String noContainCheckpoint;
/**
* jsonpath检验点,以json形式存放
*/
@ApiModelProperty(value = "jsonpath检验点,以json形式存放")
private String jsonpathCheckpoint;
/**
* 详细参数
*/
@ApiModelProperty(value = "详细参数")
private String detail;
@ApiModelProperty(value = "添加时间")
private LocalDateTime createTime;
@ApiModelProperty(value = "更新时间")
private LocalDateTime updateTime;
}
package org.matrix.autotest.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.matrix.autotest.entity.Action;
import java.util.List;
/**
* <p>
* 动作 服务类
* </p>
*
* @author mry
* @since 2022-01-07
*/
public interface ActionService extends IService<Action> {
/**
* 查询所有动作
*
* @return 查询到的所有动作
*/
List<Action> findAllAction();
/**
* 根据id查询动作
*
* @param id 动作id
* @return 动作
*/
Action findByIdAction(Integer id);
/**
* 添加动作
*
* @param action 动作
* @return 影响行数
*/
int insertAction(Action action);
/**
* 修改动作
*
* @param action 动作
* @return 影响行数
*/
int updateAction(Action action);
/**
* 删除动作
*
* @param id 动作id
* @return 影响行数
*/
int deleteAction(Integer id);
/**
* 根据项目id查询动作
*
* @param projectId 项目id
* @return 符合项目id的动作
*/
List<Action> findByProjectIdAction(Integer projectId);
/**
* 根据行为id查询动作
*
* @param moveId 行为id
* @return 符合行为id的动作
*/
List<Action> findByMoveIdAction(Integer moveId);
}
package org.matrix.autotest.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.matrix.autotest.entity.Connect;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author mry
* @since 2022-01-07
*/
public interface ConnectService extends IService<Connect> {
/**
* 查询所有连接池
*
* @return 查询到的所有连接池
*/
List<Connect> findAllConnect();
/**
* 根据id查询连接池
*
* @param id 连接池Id
* @return 连接池
*/
Connect findByIdConnect(Integer id);
/**
* 添加连接池
*
* @param connect 连接池
* @return 影响行数
*/
int insertConnect(Connect connect);
/**
* 修改连接池
*
* @param connect 连接池
* @return 影响行数
*/
int updateConnect(Connect connect);
/**
* 删除连接池
*
* @param id 连接池id
* @return 影响行数
*/
int deleteConnect(Integer id);
}
package org.matrix.autotest.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.matrix.autotest.entity.DynamicVariable;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author mry
* @since 2022-01-07
*/
public interface DynamicVariableService extends IService<DynamicVariable> {
/**
* 查询所有动态变量
*
* @return 查询到的所有动态变量
*/
List<DynamicVariable> findAllDynamicVariable();
/**
* 根据id查询动态变量
*
* @param id 动态变量id
* @return 动态变量
*/
DynamicVariable findByIdDynamicVariable(Integer id);
/**
* 添加动态变量
*
* @param dynamicVariable 动态变量
* @return 影响行数
*/
int insertDynamicVariable(DynamicVariable dynamicVariable);
/**
* 修改动态变量
*
* @param dynamicVariable 动态变量
* @return 影响行数
*/
int updateDynamicVariable(DynamicVariable dynamicVariable);
/**
* 删除动态变量
*
* @param id 动态变量
* @return 影响行数
*/
int deleteDynamicVariable(Integer id);
/**
* 根据项目id查询动作
*
* @param projectId 项目id
* @return 符合项目id的动作
*/
List<DynamicVariable> findByProjectIdDynamicVariable(Integer projectId);
}
package org.matrix.autotest.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.matrix.autotest.entity.Environment;
import java.util.List;
/**
* <p>
* 实例表,项目对应的环境实例,例如:实验室环境,开发环境等 服务类
* </p>
*
* @author mry
* @since 2022-01-07
*/
public interface EnvironmentService extends IService<Environment> {
/**
* 查询所有实例
*
* @return 查询到的所有实例
*/
List<Environment> findAllEnvironment();
/**
* 根据id查询实例
*
* @param id 实例id
* @return 实例
*/
Environment findByIdEnvironment(Integer id);
/**
* 添加实例
*
* @param environment 实例
* @return 影响行数
*/
int insertEnvironment(Environment environment);
/**
* 修改实例
*
* @param environment 实例
* @return 影响行数
*/
int updateEnvironment(Environment environment);
/**
* 删除实例
*
* @param id 实例
* @return 影响行数
*/
int deleteEnvironment(Integer id);
/**
* 根据项目id查询动作
*
* @param projectId 项目id
* @return 符合项目id的动作
*/
List<Environment> findByProjectIdEnvironment(Integer projectId);
}
package org.matrix.autotest.service.Impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.matrix.autotest.dao.ActionMapper;
import org.matrix.autotest.entity.Action;
import org.matrix.autotest.service.ActionService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 动作 服务实现类
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Service
public class ActionServiceImpl extends ServiceImpl<ActionMapper, Action> implements ActionService {
private final ActionMapper actionMapper;
public ActionServiceImpl(ActionMapper actionMapper) {
this.actionMapper = actionMapper;
}
@Override
public List<Action> findAllAction() {
return actionMapper.selectList(null);
}
@Override
public Action findByIdAction(Integer id) {
return actionMapper.selectById(id);
}
@Override
public int insertAction(Action action) {
return actionMapper.insert(action);
}
@Override
public int updateAction(Action action) {
return actionMapper.updateById(action);
}
@Override
public int deleteAction(Integer id) {
return actionMapper.deleteById(id);
}
@Override
public List<Action> findByProjectIdAction(Integer projectId) {
QueryWrapper<Action> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("project_id", projectId);
return actionMapper.selectList(queryWrapper);
}
@Override
public List<Action> findByMoveIdAction(Integer moveId) {
QueryWrapper<Action> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("move_id", moveId);
return actionMapper.selectList(queryWrapper);
}
}
package org.matrix.autotest.service.Impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.matrix.autotest.dao.ConnectMapper;
import org.matrix.autotest.entity.Connect;
import org.matrix.autotest.service.ConnectService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Service
public class ConnectServiceImpl extends ServiceImpl<ConnectMapper, Connect> implements ConnectService {
private final ConnectMapper connectMapper;
public ConnectServiceImpl(ConnectMapper connectMapper) {
this.connectMapper = connectMapper;
}
@Override
public List<Connect> findAllConnect() {
return connectMapper.selectList(null);
}
@Override
public Connect findByIdConnect(Integer id) {
return connectMapper.selectById(id);
}
@Override
public int insertConnect(Connect connect) {
return connectMapper.insert(connect);
}
@Override
public int updateConnect(Connect connect) {
return connectMapper.updateById(connect);
}
@Override
public int deleteConnect(Integer id) {
return connectMapper.deleteById(id);
}
}
package org.matrix.autotest.service.Impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.matrix.autotest.dao.DynamicVariableMapper;
import org.matrix.autotest.entity.DynamicVariable;
import org.matrix.autotest.service.DynamicVariableService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Service
public class DynamicVariableServiceImpl extends ServiceImpl<DynamicVariableMapper, DynamicVariable> implements DynamicVariableService {
private final DynamicVariableMapper dynamicVariableMapper;
public DynamicVariableServiceImpl(DynamicVariableMapper dynamicVariableMapper) {
this.dynamicVariableMapper = dynamicVariableMapper;
}
@Override
public List<DynamicVariable> findAllDynamicVariable() {
return dynamicVariableMapper.selectList(null);
}
@Override
public DynamicVariable findByIdDynamicVariable(Integer id) {
return dynamicVariableMapper.selectById(id);
}
@Override
public int insertDynamicVariable(DynamicVariable dynamicVariable) {
return dynamicVariableMapper.insert(dynamicVariable);
}
@Override
public int updateDynamicVariable(DynamicVariable dynamicVariable) {
return dynamicVariableMapper.updateById(dynamicVariable);
}
@Override
public int deleteDynamicVariable(Integer id) {
return dynamicVariableMapper.deleteById(id);
}
@Override
public List<DynamicVariable> findByProjectIdDynamicVariable(Integer projectId) {
QueryWrapper<DynamicVariable> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("project_id", projectId);
return dynamicVariableMapper.selectList(queryWrapper);
}
}
package org.matrix.autotest.service.Impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.matrix.autotest.dao.EnvironmentMapper;
import org.matrix.autotest.entity.Environment;
import org.matrix.autotest.service.EnvironmentService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 实例表,项目对应的环境实例,例如:实验室环境,开发环境等 服务实现类
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Service
public class EnvironmentServiceImpl extends ServiceImpl<EnvironmentMapper, Environment> implements EnvironmentService {
private final EnvironmentMapper environmentMapper;
public EnvironmentServiceImpl(EnvironmentMapper environmentMapper) {
this.environmentMapper = environmentMapper;
}
@Override
public List<Environment> findAllEnvironment() {
return environmentMapper.selectList(null);
}
@Override
public Environment findByIdEnvironment(Integer id) {
return environmentMapper.selectById(id);
}
@Override
public int insertEnvironment(Environment environment) {
return environmentMapper.insert(environment);
}
@Override
public int updateEnvironment(Environment environment) {
return environmentMapper.updateById(environment);
}
@Override
public int deleteEnvironment(Integer id) {
return environmentMapper.deleteById(id);
}
@Override
public List<Environment> findByProjectIdEnvironment(Integer projectId) {
QueryWrapper<Environment> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("project_id", projectId);
return environmentMapper.selectList(queryWrapper);
}
}
package org.matrix.autotest.service.Impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.matrix.autotest.dao.MoveMapper;
import org.matrix.autotest.entity.Move;
import org.matrix.autotest.service.MoveService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Service
public class MoveServiceImpl extends ServiceImpl<MoveMapper, Move> implements MoveService {
private final MoveMapper moveMapper;
public MoveServiceImpl(MoveMapper moveMapper) {
this.moveMapper = moveMapper;
}
@Override
public List<Move> findAllMove() {
return moveMapper.selectList(null);
}
@Override
public Move findByIdMove(Integer id) {
return moveMapper.selectById(id);
}
@Override
public int insertMove(Move move) {
return moveMapper.insert(move);
}
@Override
public int updateMove(Move move) {
return moveMapper.updateById(move);
}
@Override
public int deleteMove(Integer id) {
return moveMapper.deleteById(id);
}
@Override
public List<Move> findByProjectIdMove(Integer projectId) {
QueryWrapper<Move> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("project_id", projectId);
return moveMapper.selectList(queryWrapper);
}
}
package org.matrix.autotest.service.Impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.matrix.autotest.dao.ProjectMapper;
import org.matrix.autotest.entity.Project;
import org.matrix.autotest.service.ProjectService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Service
public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> implements ProjectService {
private final ProjectMapper projectMapper;
public ProjectServiceImpl(ProjectMapper projectMapper) {
this.projectMapper = projectMapper;
}
@Override
public List<Project> findAllProject() {
return projectMapper.selectList(null);
}
@Override
public Project findByIdProject(Integer id) {
return projectMapper.selectById(id);
}
@Override
public int insertProject(Project project) {
return projectMapper.insert(project);
}
@Override
public int updateProject(Project project) {
return projectMapper.updateById(project);
}
@Override
public int deleteProject(Integer id) {
return projectMapper.deleteById(id);
}
}
package org.matrix.autotest.service.Impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.matrix.autotest.dao.TestCaseMapper;
import org.matrix.autotest.entity.TestCase;
import org.matrix.autotest.service.TestCaseService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author mry
* @since 2022-01-07
*/
@Service
public class TestCaseServiceImpl extends ServiceImpl<TestCaseMapper, TestCase> implements TestCaseService {
private final TestCaseMapper testCaseMapper;
public TestCaseServiceImpl(TestCaseMapper testCaseMapper) {
this.testCaseMapper = testCaseMapper;
}
@Override
public List<TestCase> findAllTestCase() {
return testCaseMapper.selectList(null);
}
@Override
public TestCase findByIdTestCase(Integer id) {
return testCaseMapper.selectById(id);
}
@Override
public int insertTestCase(TestCase testCase) {
return testCaseMapper.insert(testCase);
}
@Override
public int updateTestCase(TestCase testCase) {
return testCaseMapper.updateById(testCase);
}
@Override
public int deleteTestCase(Integer id) {
return testCaseMapper.deleteById(id);
}
@Override
public List<TestCase> findByProjectIdTestCase(Integer projectId) {
QueryWrapper<TestCase> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("project_id", projectId);
return testCaseMapper.selectList(queryWrapper);
}
}
package org.matrix.autotest.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.matrix.autotest.entity.Move;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author mry
* @since 2022-01-07
*/
public interface MoveService extends IService<Move> {
/**
* 查询所有行为
*
* @return 查询到的所有行为
*/
List<Move> findAllMove();
/**
* 根据id查询行为
*
* @param id 行为id
* @return 行为
*/
Move findByIdMove(Integer id);
/**
* 添加行为
*
* @param move 行为
* @return 影响行数
*/
int insertMove(Move move);
/**
* 修改行为
*
* @param move 行为
* @return 影响行数
*/
int updateMove(Move move);
/**
* 删除行为
*
* @param id 行为id
* @return 影响行数
*/
int deleteMove(Integer id);
/**
* 根据项目id查询动作
*
* @param projectId 项目id
* @return 符合项目id的动作
*/
List<Move> findByProjectIdMove(Integer projectId);
}
package org.matrix.autotest.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.matrix.autotest.entity.Project;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author mry
* @since 2022-01-07
*/
public interface ProjectService extends IService<Project> {
/**
* 查询所有项目
*
* @return 查询到的所有项目
*/
List<Project> findAllProject();
/**
* 根据id查询项目
*
* @param id 项目id
* @return 项目
*/
Project findByIdProject(Integer id);
/**
* 添加项目
*
* @param project 项目
* @return 影响行数
*/
int insertProject(Project project);
/**
* 修改项目
*
* @param project 项目
* @return 影响行数
*/
int updateProject(Project project);
/**
* 删除项目
*
* @param id 项目id
* @return 影响行数
*/
int deleteProject(Integer id);
}
package org.matrix.autotest.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.matrix.autotest.entity.TestCase;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author mry
* @since 2022-01-07
*/
public interface TestCaseService extends IService<TestCase> {
/**
* 查询所有用例
*
* @return 查询到的所有用例
*/
List<TestCase> findAllTestCase();
/**
* 根据id查询用例
*
* @param id 用例Id
* @return 用例
*/
TestCase findByIdTestCase(Integer id);
/**
* 添加用例
*
* @param testCase 用例
* @return 影响行数
*/
int insertTestCase(TestCase testCase);
/**
* 修改用例
*
* @param testCase 用例
* @return 影响行数
*/
int updateTestCase(TestCase testCase);
/**
* 删除用例
*
* @param id 用例
* @return 影响行数
*/
int deleteTestCase(Integer id);
/**
* 根据项目id查询动作
*
* @param projectId 项目id
* @return 符合项目id的动作
*/
List<TestCase> findByProjectIdTestCase(Integer projectId);
}
package org.matrix.autotest.swaggerData;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @author mry
*/
@RestController
@RequestMapping("/swaggers")
@CrossOrigin
@Api(tags = "Swagger接口读取与解析")
public class SwaggerController {
public String loadJson(String url) {
BufferedReader reader;
StringBuilder json = new StringBuilder();
try {
URL urlObject = new URL(url);
URLConnection uc = urlObject.openConnection();
InputStream inputStream = uc.getInputStream();
reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
String inputLine;
while ((inputLine = reader.readLine()) != null) {
json.append(inputLine);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
return json.toString();
}
@GetMapping
public Object parameter(String url) {
@SuppressWarnings(value = "all")
List<String> list = new ArrayList();
//获得json字符串
String json = loadJson(url);
JSONObject swaggerJson = JSONObject.parseObject(json);
//localhost:8765
Object host = swaggerJson.get("host");
//"/"
Object basePath = swaggerJson.get("basePath");
Object paths = swaggerJson.get("paths");
//将paths转成map集合
@SuppressWarnings(value = "unchecked")
Map<String, String> pathsMaps = (Map<String, String>) paths;
//获取key
Set<String> methodUrls = pathsMaps.keySet();
//循环获取每个methodUrl
for (String methodUrl : methodUrls) {
//将paths转成JSON
JSONObject objPaths = (JSONObject) paths;
//通过JSON获取到methodUrl,用来获取methodUrl内部的信息
Object objMethodUrls = objPaths.get(methodUrl);
JSONObject objUrlsJson = (JSONObject) objMethodUrls;
@SuppressWarnings(value = "unchecked")
Map<String, String> objMethodUrlsMaps = (Map<String, String>) objMethodUrls;
Set<String> requests = objMethodUrlsMaps.keySet();
for (String request : requests) {
//拿到请求内部的信息
Object objRequest = objUrlsJson.get(request);
@SuppressWarnings(value = "unchecked")
Map<String, String> objRequestMaps = (Map<String, String>) objRequest;
Object parameters = objRequestMaps.get("parameters");
List<String> parameterAllList = new ArrayList<>();
if (parameters != null) {
@SuppressWarnings(value = "all")
List<String> parameterLists = (List<String>) parameters;
for (Object parameterList : parameterLists) {
@SuppressWarnings(value = "unchecked")
Map<String, String> parameterMaps = (Map<String, String>) parameterList;
String name = parameterMaps.get("name");
String type = parameterMaps.get("type");
String in = parameterMaps.get("in");
if (name == null) {
name = "";
}
if (type == null) {
type = "";
}
if (in == null) {
in = "";
}
parameterAllList.add("name=" + name + " type=" + type + " in=" + in);
}
}
list.add("{host=" + host + ", basePath=" + basePath + ", request=" + request + ", methodUrl=" + methodUrl + ", parameters=" + parameterAllList + "}");
}
}
return JSON.toJSON(list);
}
}
package org.matrix.autotest.utils;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
/**
* @author mry
*/
public class CommonResult {
/**
* 成功返回结果
*
* @param data 获取的数据
*/
@SuppressWarnings(value = "all")
public static <T> ResponseEntity<CommonResultObj<T>> success(T data, HttpHeaders headers) {
return new ResponseEntity(new CommonResultObj(data), headers, HttpStatus.OK);
}
/**
* 成功返回结果
*
* @param data 获取的数据
* @param message 提示信息
*/
@SuppressWarnings(value = "all")
public static <T> ResponseEntity<CommonResultObj<T>> success(T data, String message) {
return ResponseEntity.ok(new CommonResultObj<>(data, message));
}
/**
* 成功返回结果
*
* @param message 提示信息
*/
@SuppressWarnings(value = "all")
public static <T> ResponseEntity<CommonResultObj<T>> success(String message) {
return ResponseEntity.ok(new CommonResultObj<>(null, message));
}
/**
* 成功返回结果
*
* @param data
*/
@SuppressWarnings(value = "all")
public static <T> ResponseEntity<CommonResultObj<T>> success(T data) {
return ResponseEntity.ok(new CommonResultObj<>(data));
}
/**
* 成功返回结果
*/
@SuppressWarnings(value = "all")
public static <T> ResponseEntity<CommonResultObj<T>> success() {
return ResponseEntity.ok(new CommonResultObj<>());
}
/**
* 失败返回结果
*
* @param data 获取的数据
*/
@SuppressWarnings(value = "all")
public static <T> ResponseEntity<CommonResultObj<T>> failed(T data, HttpHeaders headers) {
return new ResponseEntity(new CommonResultObj(data), headers, HttpStatus.INTERNAL_SERVER_ERROR);
}
/**
* 失败返回结果
*
* @param data 获取的数据
* @param message 提示信息
*/
@SuppressWarnings(value = "all")
public static <T> ResponseEntity<CommonResultObj<T>> failed(T data, String message) {
return ResponseEntity.status(500).body(new CommonResultObj<>(data, message));
}
/**
* 失败返回结果
*
* @param message 提示信息
*/
@SuppressWarnings(value = "all")
public static <T> ResponseEntity<CommonResultObj<T>> failed(String message) {
return ResponseEntity.status(500).body(new CommonResultObj<>(null, message));
}
/**
* 失败返回结果
*
* @param data 获取的数据
*/
@SuppressWarnings(value = "all")
public static <T> ResponseEntity<CommonResultObj<T>> failed(T data) {
return ResponseEntity.status(500).body(new CommonResultObj<>(data));
}
/**
* 失败返回结果
*/
@SuppressWarnings(value = "all")
public static <T> ResponseEntity<CommonResultObj<T>> failed() {
return ResponseEntity.status(500).body(new CommonResultObj<>());
}
}
package org.matrix.autotest.utils;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author mry
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonPropertyOrder(value = {"message", "data"})
public class CommonResultObj<T> {
private T data;
private String message;
public CommonResultObj(T data) {
this.data = data;
this.message = "no message";
}
}
server.port=8765
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/keystone?useSSL=false&verifyServerCertificate=false&useUnicode=true&autoReconnect=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
mybatis-plus.type-aliases-package=org.matrix.autotest.entity
mybatis-plus.configuration.map-underscore-to-camel-case=true
\ No newline at end of file
package org.matrix.autotest;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class DemoApplicationTests {
@Test
void contextLoads() {
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论