Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
web
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
中汽测评-信息安全测评系统
web
Commits
02489d31
Commit
02489d31
authored
Mar 18, 2024
by
jiaxu.yan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: gql修改文档
parent
92e32b67
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
124 additions
and
32 deletions
+124
-32
client.graphql
src/api/graphql/client.graphql
+9
-7
index.vue
src/views/setting/testMatrix/useCaseDetails/index.vue
+4
-6
车联网安全检测平台公开API_V202401.md
车联网安全检测平台公开API_V202401.md
+111
-19
No files found.
src/api/graphql/client.graphql
View file @
02489d31
...
...
@@ -43,13 +43,17 @@ fragment ProjectBasicObject on Project {
status
}
# 新建文件检测项目
mutation
NewFileTestProject
(
fragment
ProjectBasicObject
on
Project
{
id
name
description
status
}
mutation
FastTestProject
(
$name
:
String
!
$lawId
:
ID
!
$principalUserId
:
ID
!
$systemTypeId
:
ID
!
$systemTypeName
:
String
!
$systemId
:
ID
!
$caseIdList
:
[
ID
!]!
$fileList
:
[
ID
!]!
)
{
projectMutation
:
teamProject
(
id
:
"team_items;1"
)
{
...
...
@@ -57,11 +61,9 @@ mutation NewFileTestProject(
input
:
{
testMethod
:
File
name
:
$name
lawId
:
$lawId
caseIdList
:
$caseIdList
principalUserId
:
$principalUserId
autoPartsId
:
$systemTypeId
systemId
:
$systemId
systemType
:
$systemTypeName
fileList
:
$fileList
}
)
{
...
...
src/views/setting/testMatrix/useCaseDetails/index.vue
View file @
02489d31
...
...
@@ -13,7 +13,7 @@
</
template
>
<
script
>
import
{
NewFile
TestProject
}
from
'@/api/graphql/client.graphql'
import
{
Fast
TestProject
}
from
'@/api/graphql/client.graphql'
export
default
{
name
:
'Index'
,
data
()
{
...
...
@@ -32,14 +32,12 @@ export default {
this
.
$apollo
.
mutate
({
// fetchPolicy: 'no-cache',
mutation
:
NewFile
TestProject
,
mutation
:
Fast
TestProject
,
variables
:
{
name
:
'test10
6
'
,
name
:
'test10
8
'
,
lawId
:
'law_items;106'
,
principalUserId
:
'user_items;2'
,
systemTypeId
:
'autoParts;1'
,
systemTypeName
:
'Linux'
,
systemId
:
'system;1'
,
caseIdList
:
'system;1'
,
fileList
:
[
'file_management_items;2'
]
}
})
...
...
车联网安全检测平台公开API_V202401.md
View file @
02489d31
# 车联网安全检测平台 API V20240
1
# 车联网安全检测平台 API V20240
3
## 目录
-
[
快速开始
](
#_quick_start
)
...
...
@@ -7,6 +7,7 @@
-
检测项目
-
[
新建文件检测项目
](
#NewFileTestProject
)
-
[
新建终端检测项目
](
#NewClientTestProject
)
-
[
快速新建检测项目
](
#FastTestProject
)
-
[
查询操作系统列表
](
#GetSystemList
)
-
[
查询检测终端列表
](
#GetClientList
)
-
[
查询安卓设备列表
](
#GetAndroidDeviceList
)
...
...
@@ -61,6 +62,7 @@
-
[
StepPluginResult
](
#StepPluginResult
)
-
[
错误码
](
#error_code
)
-
[
示例脚本
](
#example
)
-
[
更新日志
](
#changelog
)
## <a id="_quick_start"></a>快速开始
该文档假设你已经熟悉了HTTP协议,了解JSON格式。
...
...
@@ -225,8 +227,6 @@ curl -X POST \
| name | String! | 是 | 项目名称 |
| lawId | String! | 是 | 用例集id,示例:"law_items;1",可参考
[
查询用例集列表
](
#GetSuiteList
)
中返回的id |
| principalUserId | String! | 是 | 负责人id,示例:"user_items;1",可参考
[
查询用户列表
](
#GetUserList
)
中返回的id |
| systemTypeId | String! | 是 | 系统类型id,示例:"autoParts;1",可参考
[
查询操作系统列表
](
#GetSystemList
)
中返回的systemTypeId |
| systemTypeName | String! | 是 | 系统类型名称,示例:"Linux",可参考
[
查询操作系统列表
](
#GetSystemList
)
中返回的systemTypeName |
| systemId | String! | 是 | 系统id,示例:"system;123",可参考
[
查询操作系统列表
](
#GetSystemList
)
中返回的systemId |
| fileList |
[
ID!
]
! | 是 | 待检测文件列表,示例:
[
"file_management_items;1","file_management_items;2"
]
,可参考
[
查询文件列表
](
#GetFileList
)
中返回的id |
...
...
@@ -258,7 +258,7 @@ curl -X POST \
```
json
{
"query"
:
"fragment ProjectBasicObject on Project{id name description status}mutation NewFileTestProject($name:String!$lawId:ID!$principalUserId:ID!$system
TypeId:ID!$systemTypeName:String!$systemId:ID!$fileList:[ID!]!){projectMutation:teamProject(id:
\"
team_items;1
\"
){project:createProject(input:{testMethod:File name:$name lawId:$lawId principalUserId:$principalUserId autoPartsId:$systemTypeId systemId:$systemId systemType:$systemTypeName
fileList:$fileList}){...ProjectBasicObject}}}"
,
"query"
:
"fragment ProjectBasicObject on Project{id name description status}mutation NewFileTestProject($name:String!$lawId:ID!$principalUserId:ID!$system
Id:ID!$fileList:[ID!]!){projectMutation:teamProject(id:
\"
team_items;1
\"
){project:createProject(input:{testMethod:File name:$name lawId:$lawId principalUserId:$principalUserId systemId:$systemId
fileList:$fileList}){...ProjectBasicObject}}}"
,
"variables"
:
{}
}
```
...
...
@@ -291,10 +291,10 @@ fragment ProjectBasicObject on Project {
status
}
mutation NewFileTestProject($name: String!, $lawId: ID!, $principalUserId: ID!, $system
TypeId: ID!, $systemTypeName: String!, $system
Id: ID!, $fileList:
[
ID!
]
!) {
mutation NewFileTestProject($name: String!, $lawId: ID!, $principalUserId: ID!, $systemId: ID!, $fileList:
[
ID!
]
!) {
projectMutation: teamProject(id:
"
team_items;1
"
) {
project: createProject(
input: {testMethod: File, name: $name, lawId: $lawId, principalUserId: $principalUserId,
autoPartsId: $systemTypeId, systemId: $systemId, systemType: $systemTypeName
, fileList: $fileList}
input: {testMethod: File, name: $name, lawId: $lawId, principalUserId: $principalUserId,
systemId: $systemId
, fileList: $fileList}
) {
...ProjectBasicObject
}
...
...
@@ -314,8 +314,6 @@ mutation NewFileTestProject($name: String!, $lawId: ID!, $principalUserId: ID!,
| name | String! | 是 | 项目名称 |
| lawId | String! | 是 | 用例集id,示例:"law_items;1",可参考
[
查询用例集列表
](
#GetSuiteList
)
中返回的id |
| principalUserId | String! | 是 | 负责人id,示例:"user_items;1",可参考
[
查询用户列表
](
#GetUserList
)
中返回的id |
| systemTypeId | String! | 是 | 系统类型id,示例:"autoParts;1",可参考
[
查询操作系统列表
](
#GetSystemList
)
中返回的systemTypeId |
| systemTypeName | String! | 是 | 系统类型名称,示例:"Linux",可参考
[
查询操作系统列表
](
#GetSystemList
)
中返回的systemTypeName |
| systemId | String! | 是 | 系统id,示例:"system;123",可参考
[
查询操作系统列表
](
#GetSystemList
)
中返回的systemTypeId |
| clientId | String! | 是 | 终端id,示例:"fffff40e-80cc-45f2-9186-fdae87ca327d",可参考
[
检测设备状态
](
#DetectDevice
)
接口中返回的clientId |
| deviceId | String! | 是 | 设备id,示例:"LX-60C1FFFF",可参考
[
检测设备状态
](
#DetectDevice
)
接口中返回的deviceId |
...
...
@@ -354,7 +352,7 @@ mutation NewFileTestProject($name: String!, $lawId: ID!, $principalUserId: ID!,
```
json
{
"query"
:
"fragment ProjectBasicObject on Project{id name description status}mutation NewClientTestProject($name:String!$lawId:ID!$principalUserId:ID!$system
TypeId:ID!$systemTypeName:String!$systemId:ID!$clientId:String!$deviceId:String!$connectType:String!$ip:String!$port:Int!$username:String!$password:String$certUrl:String){projectMutation:teamProject(id:
\"
team_items;1
\"
){project:createProject(input:{testMethod:Client name:$name lawId:$lawId principalUserId:$principalUserId autoPartsId:$systemTypeId systemId:$systemId systemType:$systemTypeName
clientId:$clientId deviceId:$deviceId linuxConnectType:$connectType linuxConnectIP:$ip linuxConnectPort:$port linuxConnectUser:$username linuxConnectPassword:$password linuxConnectCertificateUrl:$certUrl}){...ProjectBasicObject}}}"
,
"query"
:
"fragment ProjectBasicObject on Project{id name description status}mutation NewClientTestProject($name:String!$lawId:ID!$principalUserId:ID!$system
Id:ID!$clientId:String!$deviceId:String!$connectType:String!$ip:String!$port:Int!$username:String!$password:String$certUrl:String){projectMutation:teamProject(id:
\"
team_items;1
\"
){project:createProject(input:{testMethod:Client name:$name lawId:$lawId principalUserId:$principalUserId systemId:$systemId
clientId:$clientId deviceId:$deviceId linuxConnectType:$connectType linuxConnectIP:$ip linuxConnectPort:$port linuxConnectUser:$username linuxConnectPassword:$password linuxConnectCertificateUrl:$certUrl}){...ProjectBasicObject}}}"
,
"variables"
:
{}
}
```
...
...
@@ -387,10 +385,97 @@ fragment ProjectBasicObject on Project {
status
}
mutation NewClientTestProject($name: String!, $lawId: ID!, $principalUserId: ID!, $system
TypeId: ID!, $systemTypeName: String!, $system
Id: ID!, $clientId: String!, $deviceId: String!, $connectType: String!, $ip: String!, $port: Int!, $username: String!, $password: String, $certUrl: String) {
mutation NewClientTestProject($name: String!, $lawId: ID!, $principalUserId: ID!, $systemId: ID!, $clientId: String!, $deviceId: String!, $connectType: String!, $ip: String!, $port: Int!, $username: String!, $password: String, $certUrl: String) {
projectMutation: teamProject(id:
"
team_items;1
"
) {
project: createProject(
input: {testMethod: Client, name: $name, lawId: $lawId, principalUserId: $principalUserId, autoPartsId: $systemTypeId, systemId: $systemId, systemType: $systemTypeName, clientId: $clientId, deviceId: $deviceId, linuxConnectType: $connectType, linuxConnectIP: $ip, linuxConnectPort: $port, linuxConnectUser: $username, linuxConnectPassword: $password, linuxConnectCertificateUrl: $certUrl}
input: {testMethod: Client, name: $name, lawId: $lawId, principalUserId: $principalUserId, systemId: $systemId, clientId: $clientId, deviceId: $deviceId, linuxConnectType: $connectType, linuxConnectIP: $ip, linuxConnectPort: $port, linuxConnectUser: $username, linuxConnectPassword: $password, linuxConnectCertificateUrl: $certUrl}
) {
...ProjectBasicObject
}
}
}
</code></pre>
</details>
### <a id="FastTestProject"></a>快速新建检测项目
快速创建新的检测项目,无需输入用例集,系统将会自动根据输入的用例id列表生成(虚拟)用例集
#### 请求参数
| 名称 | 类型 | 是否必填 | 描述 |
| ---- | ---- | ------ | ---- |
| name | String! | 是 | 项目名称 |
| principalUserId | String! | 是 | 负责人id,示例:"user_items;1",可参考
[
查询用户列表
](
#GetUserList
)
中返回的id |
| systemId | String! | 是 | 系统id,示例:"system;123",可参考
[
查询操作系统列表
](
#GetSystemList
)
中返回的systemId |
| caseIdList |
[
ID!
]
! | 是 | 用例id列表,示例:
[
"case_items;1","case_items;2"
]
,可参考
[
查询用例列表
](
#GetAllCaseList
)
中返回的id |
| fileList |
[
ID!
]
! | 是 | 待检测文件列表,示例:
[
"file_management_items;1","file_management_items;2"
]
,可参考
[
查询文件列表
](
#GetFileList
)
中返回的id |
#### 响应类型
##### <a id="FastTestProject_Mutation"></a>Mutation
| 名称 | 类型 | 描述 |
| ---- | ---- | ----------- |
| projectMutation |
[
TeamProjectMutation!
](
#FastTestProject_TeamProjectMutation
)
| 修改检测项目 |
##### <a id="FastTestProject_TeamProjectMutation"></a>TeamProjectMutation
| 名称 | 类型 | 描述 |
| ---- | ---- | ----------- |
| project |
[
Project
](
#FastTestProject_Project
)
| 创建检测项目 |
##### <a id="FastTestProject_Project"></a>Project
| 名称 | 类型 | 描述 |
| ---- | ---- | ----------- |
| id | String! | 项目ID,示例:"project_items;1" |
| name | String! | 项目名称 |
| description | String! | 项目的描述信息 |
| status |
[
CommonStatus!
](
#CommonStatus
)
| 项目的检测状态,对应未检测、检测中、已完成 |
#### 查询JSON
```
json
{
"query"
:
"fragment ProjectBasicObject on Project{id name description status}mutation FastTestProject($name:String!$principalUserId:ID!$systemId:ID!$caseIdList:[ID!]!$fileList:[ID!]!){projectMutation:teamProject(id:
\"
team_items;1
\"
){project:createProject(input:{testMethod:File name:$name caseIdList:$caseIdList principalUserId:$principalUserId systemId:$systemId fileList:$fileList}){...ProjectBasicObject}}}"
,
"variables"
:
{}
}
```
#### 响应JSON示例
```
json
{
"data"
:
{
"projectMutation"
:
{
"project"
:
{
"id"
:
"project_items;1"
,
"name"
:
"创建样例"
,
"description"
:
""
,
"status"
:
"Ready"
}
}
}
}
```
#### 查询
<details>
<summary>
展开查看
</summary>
<pre><code>
fragment ProjectBasicObject on Project {
id
name
description
status
}
mutation FastTestProject($name: String!, $principalUserId: ID!, $systemId: ID!, $caseIdList:
[
ID!
]
!, $fileList:
[
ID!
]
!) {
projectMutation: teamProject(id:
"
team_items;1
"
) {
project: createProject(
input: {testMethod: File, name: $name, caseIdList: $caseIdList, principalUserId: $principalUserId, systemId: $systemId, fileList: $fileList}
) {
...ProjectBasicObject
}
...
...
@@ -2894,6 +2979,7 @@ query GetCaseDetail($caseId: ID!) {
| offset | Int | 否 | 分页参数,表示偏移量,默认为0 |
| limit | Int | 否 | 分页参数,表示返回数量,默认为50 |
| search | String | 否 | 搜索参数,用于匹配用例名称或序列号 |
| scenario | String | 否 | 测试场景参数,用于获取该场景下的所有用例 |
#### 响应类型
...
...
@@ -2933,7 +3019,7 @@ query GetCaseDetail($caseId: ID!) {
```
json
{
"query"
:
"fragment CaseListItem on CaseCustomItemRep{count list:resultList{id serialNumber name description:caseDesc remediation submitUserName submitTime canModify needDevice:isBind classifyName operatingSystemName riskLevelName testMethodName}}query GetCaseList($suiteId:ID$offset:Int=0$limit:Int=50$search:String=
\"\"
){caseList:getAllCaseList(teamId:
\"
team_items;1
\"
suiteId:$suiteId offset:{offset:$offset limit:$limit}search:{retrieveData:[{RetrieveColumn:
\"
allName
\"
RetrieveValue:$search}]sortData:[{SortColumn:
\"
serialNumber
\"
SortOrder:ASC}]}
){...CaseListItem}}"
,
"query"
:
"fragment CaseListItem on CaseCustomItemRep{count list:resultList{id serialNumber name description:caseDesc remediation submitUserName submitTime canModify needDevice:isBind classifyName operatingSystemName riskLevelName testMethodName}}query GetCaseList($suiteId:ID$offset:Int=0$limit:Int=50$search:String=
\"\"
$scenario:String){caseList:getAllCaseList(teamId:
\"
team_items;1
\"
suiteId:$suiteId offset:{offset:$offset limit:$limit}search:{retrieveData:[{RetrieveColumn:
\"
allName
\"
RetrieveValue:$search}]sortData:[{SortColumn:
\"
serialNumber
\"
SortOrder:ASC}]}scenario:$scenario
){...CaseListItem}}"
,
"variables"
:
{}
}
```
...
...
@@ -2961,12 +3047,13 @@ fragment CaseListItem on CaseCustomItemRep {
}
}
query GetCaseList($suiteId: ID, $offset: Int = 0, $limit: Int = 50, $search: String =
""
) {
query GetCaseList($suiteId: ID, $offset: Int = 0, $limit: Int = 50, $search: String =
""
, $scenario: String
) {
caseList: getAllCaseList(
teamId:
"
team_items;1
"
suiteId: $suiteId
offset: {offset: $offset, limit: $limit}
search: {retrieveData:
[
{RetrieveColumn: "allName", RetrieveValue: $search}
]
, sortData:
[
{SortColumn: "serialNumber", SortOrder: ASC}
]
}
scenario: $scenario
) {
...CaseListItem
}
...
...
@@ -3608,7 +3695,6 @@ query GetUserList($offset: Int! = 0, $limit: Int! = 50, $search: String) {
```
bash
#!/bin/bash
# 本脚本用于在车联网安全检测平台创建终端检测项目样例,需要检测终端已连接平台
#
# 脚本依赖于以下参数:
...
...
@@ -3752,19 +3838,15 @@ query GetUserList($offset: Int! = 0, $limit: Int! = 50, $search: String) {
echo
-e
"
\n
新建终端检测项目..."
name
=
"检测项目样例
$(
date
+%s
)
"
lawId
=
$(
echo
$law
| jq
-r
.id
)
systemTypeId
=
$(
echo
$system
| jq
-r
.systemTypeId
)
systemTypeName
=
$(
echo
$system
| jq
-r
.systemTypeName
)
systemId
=
$(
echo
$system
| jq
-r
.systemId
)
clientId
=
$(
echo
$device
| jq
-r
.data.checkDeviceOnline.clientId
)
deviceId
=
$(
echo
$device
| jq
-r
.data.checkDeviceOnline.deviceId
)
payload
=
'{
"query": "fragment ProjectBasicObject on Project{id name description status}mutation NewClientTestProject($name:String!$lawId:ID!$principalUserId:ID!$system
TypeId:ID!$systemTypeName:String!$systemId:ID!$clientId:String!$deviceId:String!$connectType:String!$ip:String!$port:Int!$username:String!$password:String$certUrl:String){projectMutation:teamProject(id:\"team_items;1\"){project:createProject(input:{testMethod:Client name:$name lawId:$lawId principalUserId:$principalUserId autoPartsId:$systemTypeId systemId:$systemId systemType:$systemTypeName
clientId:$clientId deviceId:$deviceId linuxConnectType:$connectType linuxConnectIP:$ip linuxConnectPort:$port linuxConnectUser:$username linuxConnectPassword:$password linuxConnectCertificateUrl:$certUrl}){...ProjectBasicObject}}}",
"query": "fragment ProjectBasicObject on Project{id name description status}mutation NewClientTestProject($name:String!$lawId:ID!$principalUserId:ID!$system
Id:ID!$clientId:String!$deviceId:String!$connectType:String!$ip:String!$port:Int!$username:String!$password:String$certUrl:String){projectMutation:teamProject(id:\"team_items;1\"){project:createProject(input:{testMethod:Client name:$name lawId:$lawId principalUserId:$principalUserId systemId:$systemId
clientId:$clientId deviceId:$deviceId linuxConnectType:$connectType linuxConnectIP:$ip linuxConnectPort:$port linuxConnectUser:$username linuxConnectPassword:$password linuxConnectCertificateUrl:$certUrl}){...ProjectBasicObject}}}",
"variables": {
"name": "'
$name
'",
"lawId": "'
$lawId
'",
"principalUserId": "user_items;1",
"systemTypeId": "'
$systemTypeId
'",
"systemTypeName": "'
$systemTypeName
'",
"systemId": "'
$systemId
'",
"clientId": "'
$clientId
'",
"deviceId": "'
$deviceId
'",
...
...
@@ -3783,3 +3865,13 @@ query GetUserList($offset: Int! = 0, $limit: Int! = 50, $search: String) {
echo
"新建结果:"
echo
$project
| jq
.
```
## <a id="changelog"></a>更新日志
### 202403
#### 新增
*
支持
[
快速创建项目
](
#FastTestProject
)
#### 调整
*
[
查询用例列表
](
#GetCaseList
)
新增
`scenario`
参数,用于查询具体测试场景下的用例列表
### 202401
初始版本
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment