Documentation
¶
Index ¶
- Constants
- Variables
- func AllAuthTypes() []maps.Map
- func AllStatusTypes() []maps.Map
- func ContainsAuthType(authType string) bool
- func FindAuthTypeName(authType string) string
- type API
- func (this *API) AddMock(filename string)
- func (this *API) AddParam(param *APIParam)
- func (this *API) AddScript(script *APIScript)
- func (this *API) AddTestCase(filename string)
- func (this *API) AllowMethod(method string) bool
- func (this *API) CachePolicyObject() *shared.CachePolicy
- func (this *API) ChangeGroup(oldName string, newName string)
- func (this *API) ChangeVersion(oldName string, newName string)
- func (this *API) Delete() error
- func (this *API) DeleteMock(mockFile string)
- func (this *API) DeleteTestCase(filename string)
- func (this *API) DeleteTestScript(filename string) error
- func (this *API) FindTestCases() []*APITestCase
- func (this *API) FindTestScript(filename string) *APIScript
- func (this *API) FindTestScripts() []*APIScript
- func (this *API) IsWatching() bool
- func (this *API) Match(path string) (params map[string]string, matched bool)
- func (this *API) MockDataFiles() []string
- func (this *API) RandMock() *APIMock
- func (this *API) RemoveGroup(name string)
- func (this *API) RemoveVersion(name string)
- func (this *API) Save() error
- func (this *API) StartWatching()
- func (this *API) StopWatching()
- func (this *API) Validate() error
- type APIAuthBasicAuth
- type APIAuthInterface
- func NewAPIAuth(authType string, options map[string]interface{}) APIAuthInterface
- func NewAPIAuthBasicAuth(options map[string]interface{}) APIAuthInterface
- func NewAPIAuthKeyAuth(options map[string]interface{}) APIAuthInterface
- func NewAPIAuthNoneAuth(options map[string]interface{}) APIAuthInterface
- type APIAuthKeyAuth
- type APIAuthNoneAuth
- type APIConfig
- func (this *APIConfig) AddAPI(api *API)
- func (this *APIConfig) AddAPIGroup(name string)
- func (this *APIConfig) AddAPIVersion(name string)
- func (this *APIConfig) AddConsumer(consumerFile string)
- func (this *APIConfig) AddStatus(status *APIStatus)
- func (this *APIConfig) AddTestPlan(filename string)
- func (this *APIConfig) ChangeAPIGroup(oldName string, newName string)
- func (this *APIConfig) ChangeAPIVersion(oldName string, newName string)
- func (this *APIConfig) DeleteAPI(api *API)
- func (this *APIConfig) DeleteConsumer(consumerFile string)
- func (this *APIConfig) DeleteTestPlan(filename string) error
- func (this *APIConfig) ExistStatusCode(code string) bool
- func (this *APIConfig) FindAPI(path string) *API
- func (this *APIConfig) FindAPIStatus(code string) *APIStatus
- func (this *APIConfig) FindActiveAPI(path string, method string) (api *API, params map[string]string)
- func (this *APIConfig) FindAllAPIs() []*API
- func (this *APIConfig) FindAllConsumers() []*APIConsumer
- func (this *APIConfig) FindAllRunningConsumers() []*APIConsumer
- func (this *APIConfig) FindConsumerForRequest(authType string, req *http.Request) (consumer *APIConsumer, authorized bool)
- func (this *APIConfig) FindTestPlans() []*APITestPlan
- func (this *APIConfig) MoveAPIStatus(fromIndex int, toIndex int)
- func (this *APIConfig) MoveDownAPIGroup(name string)
- func (this *APIConfig) MoveDownAPIStatus(code string)
- func (this *APIConfig) MoveDownAPIVersion(name string)
- func (this *APIConfig) MoveUpAPIGroup(name string)
- func (this *APIConfig) MoveUpAPIStatus(code string)
- func (this *APIConfig) MoveUpAPIVersion(name string)
- func (this *APIConfig) RefreshStatusMap()
- func (this *APIConfig) ReloadConsumers()
- func (this *APIConfig) RemoveAPIGroup(name string)
- func (this *APIConfig) RemoveAPIVersion(name string)
- func (this *APIConfig) RemoveStatus(code string)
- func (this *APIConfig) UpdateAPI(api *API)
- func (this *APIConfig) Validate() error
- type APIConsumer
- type APIDataLimit
- type APILimit
- type APIMock
- type APIParam
- type APIRequestLimit
- type APIScript
- type APIStatus
- type APITestCase
- type APITestPlan
- func (this *APITestPlan) AddReport(reportFilename string)
- func (this *APITestPlan) Delete() error
- func (this *APITestPlan) LastReport() *APITestPlanReport
- func (this *APITestPlan) MatchTime(currentTime time.Time) bool
- func (this *APITestPlan) Save() error
- func (this *APITestPlan) WeekdayNames() []string
- type APITestPlanReport
- func (this *APITestPlanReport) AddAPIResult(apiResult *APITestResult)
- func (this *APITestPlanReport) CountFailedResults() int
- func (this *APITestPlanReport) CountResults() int
- func (this *APITestPlanReport) CountScripts() int
- func (this *APITestPlanReport) InitFile()
- func (this *APITestPlanReport) Save() error
- func (this *APITestPlanReport) Summary() maps.Map
- type APITestResult
- type APITestScriptResult
- type APIVersion
- type ApiWatching
Constants ¶
View Source
const ( APIAuthTypeNone = "none" APIAuthTypeBasicAuth = "basicAuth" APIAuthTypeKeyAuth = "keyAuth" )
认证类型
View Source
const ( APIMockFormatJSON = "json" APIMockFormatXML = "xml" APIMockFormatText = "text" APIMockFormatFile = "file" )
API的mock格式定义
View Source
const ( APIStatusTypeNormal = "normal" APIStatusTypeSuccess = "success" APIStatusTypeWarning = "warning" APIStatusTypeFailure = "failure" APIStatusTypeError = "error" )
API状态常量
Variables ¶
Functions ¶
Types ¶
type API ¶
type API struct {
shared.HeaderList
Filename string `yaml:"filename" json:"filename"` // 文件名
Path string `yaml:"path" json:"path"` // 访问路径
Address string `yaml:"address" json:"address"` // 实际地址
Methods []string `yaml:"methods" json:"methods"` // 方法
Params []*APIParam `yaml:"params" json:"params"` // 参数
Name string `yaml:"name" json:"name"` // 名称
Description string `yaml:"description" json:"description"` // 描述
MockFiles []string `yaml:"mockFiles" json:"mockFiles"` // 假数据文件(Mock)
MockOn bool `yaml:"mockOn" json:"mockOn"` // 是否开启Mock
Author string `yaml:"author" json:"author"` // 作者
Company string `yaml:"company" json:"company"` // 公司或团队
IsAsynchronous bool `yaml:"isAsynchronous" json:"isAsynchronous"` // TODO
Timeout float64 `yaml:"timeout" json:"timeout"` // TODO
MaxSize uint `yaml:"maxSize" json:"maxSize"` // TODO
TodoThings []string `yaml:"todo" json:"todo"` // 待做事宜
DoneThings []string `yaml:"done" json:"done"` // 已完成事宜
Response []byte `yaml:"response" json:"response"` // 响应内容 TODO
IsDeprecated bool `yaml:"isDeprecated" json:"isDeprecated"` // 是否过期
On bool `yaml:"on" json:"on"` // 是否开启
Versions []string `yaml:"versions" json:"versions"` // 版本信息
ModifiedAt int64 `yaml:"modifiedAt" json:"modifiedAt"` // 最后修改时间
Username string `yaml:"username" json:"username"` // 最后修改用户名
Groups []string `yaml:"groups" json:"groups"` // 分组
Limit *APILimit `yaml:"limit" json:"limit"` // 限制 TODO
AuthType string `yaml:"authType" json:"authType"` // 认证方式
TestScripts []string `yaml:"testScripts" json:"testScripts"` // 脚本文件
TestCaseFiles []string `yaml:"testCaseFiles" json:"testCaseFiles"` // 单元测试存储文件
CachePolicy string `yaml:"cachePolicy" json:"cachePolicy"` // 缓存策略
CacheOn bool `yaml:"cacheOn" json:"cacheOn"` // 缓存是否打开 TODO
// contains filtered or unexported fields
}
API定义
func (*API) ChangeVersion ¶
func (this *API) ChangeVersion(oldName string, newName string)
修改API某个版本号
type APIAuthBasicAuth ¶
Basic Auth
func (*APIAuthBasicAuth) KeyFromRequest ¶
func (this *APIAuthBasicAuth) KeyFromRequest(req *http.Request) string
func (*APIAuthBasicAuth) MatchRequest ¶
func (this *APIAuthBasicAuth) MatchRequest(req *http.Request) bool
func (*APIAuthBasicAuth) UniqueKey ¶
func (this *APIAuthBasicAuth) UniqueKey() string
type APIAuthInterface ¶
type APIAuthInterface interface {
// 唯一Key
UniqueKey() string
// 从Request中读取Key
KeyFromRequest(req *http.Request) string
// 匹配Request
MatchRequest(req *http.Request) bool
}
认证接口
func NewAPIAuth ¶
func NewAPIAuth(authType string, options map[string]interface{}) APIAuthInterface
新对象
func NewAPIAuthBasicAuth ¶
func NewAPIAuthBasicAuth(options map[string]interface{}) APIAuthInterface
func NewAPIAuthKeyAuth ¶
func NewAPIAuthKeyAuth(options map[string]interface{}) APIAuthInterface
func NewAPIAuthNoneAuth ¶
func NewAPIAuthNoneAuth(options map[string]interface{}) APIAuthInterface
type APIAuthKeyAuth ¶
Key Auth
func (*APIAuthKeyAuth) KeyFromRequest ¶
func (this *APIAuthKeyAuth) KeyFromRequest(req *http.Request) string
func (*APIAuthKeyAuth) MatchRequest ¶
func (this *APIAuthKeyAuth) MatchRequest(req *http.Request) bool
func (*APIAuthKeyAuth) UniqueKey ¶
func (this *APIAuthKeyAuth) UniqueKey() string
type APIAuthNoneAuth ¶
type APIAuthNoneAuth struct {
}
默认认证(无认证)
func (*APIAuthNoneAuth) KeyFromRequest ¶
func (this *APIAuthNoneAuth) KeyFromRequest(req *http.Request) string
func (*APIAuthNoneAuth) MatchRequest ¶
func (this *APIAuthNoneAuth) MatchRequest(req *http.Request) bool
func (*APIAuthNoneAuth) UniqueKey ¶
func (this *APIAuthNoneAuth) UniqueKey() string
type APIConfig ¶
type APIConfig struct {
On bool `yaml:"on" json:"on"` // 是否开启API功能
Files []string `yaml:"files" json:"files"` // API文件列表
Groups []string `yaml:"groups" json:"groups"` // API分组
Versions []string `yaml:"versions" json:"versions"` // API版本
TestPlans []string `yaml:"testPlans" json:"testPlans"` // API测试计划
StatusList []*APIStatus `yaml:"status" json:"status"` // 状态码列表
StatusScriptOn bool `yaml:"statusScriptOn" json:"statusScriptOn"` // 是否开启状态码分析脚本
StatusScript string `yaml:"statusScript" json:"statusScript"` // 状态码分析脚本
MockOn bool `yaml:"mockOn" json:"mockOn"` // 是否开启Mock
ConsumerFiles []string `yaml:"consumerFiles" json:"consumerFiles"` // 消费者(调用的开发者)
// contains filtered or unexported fields
}
服务的API配置
func (*APIConfig) ChangeAPIGroup ¶
修改API分组
func (*APIConfig) ChangeAPIVersion ¶
修改API版本
func (*APIConfig) DeleteConsumer ¶
删除consumer
func (*APIConfig) DeleteTestPlan ¶
删除某个测试计划
func (*APIConfig) ExistStatusCode ¶
判断状态代号是否存在
func (*APIConfig) FindAPIStatus ¶
根据代号查找状态码
func (*APIConfig) FindActiveAPI ¶
func (this *APIConfig) FindActiveAPI(path string, method string) (api *API, params map[string]string)
查找激活状态中的API
func (*APIConfig) FindAllConsumers ¶
func (this *APIConfig) FindAllConsumers() []*APIConsumer
查询所有的Consumer
func (*APIConfig) FindAllRunningConsumers ¶
func (this *APIConfig) FindAllRunningConsumers() []*APIConsumer
查询所有正在运行的Consumer
func (*APIConfig) FindConsumerForRequest ¶
func (this *APIConfig) FindConsumerForRequest(authType string, req *http.Request) (consumer *APIConsumer, authorized bool)
查找某个认证类型的Consumer
func (*APIConfig) MoveAPIStatus ¶
移动位置
func (*APIConfig) MoveDownAPIGroup ¶
把API分组往下调整
func (*APIConfig) MoveDownAPIStatus ¶
把API分组往下调整
func (*APIConfig) MoveDownAPIVersion ¶
把API版本往下调整
func (*APIConfig) MoveUpAPIVersion ¶
把API版本往上调整
type APIConsumer ¶
type APIConsumer struct {
Filename string `yaml:"filename" json:"filename"` // 文件名
On bool `yaml:"on" json:"on"` // 是否开启 TODO
Name string `yaml:"name" json:"name"` // 名称
// 认证
Auth struct {
On bool `yaml:"on" json:"on"` // 是否开启 TODO
Type string `yaml:"type" json:"type"` // 类型
Options map[string]interface{} `yaml:"options" json:"options"` // 选项
} `yaml:"auth" json:"auth"`
// API控制
API struct {
On bool `yaml:"on" json:"on"` // 是否开启
AllowAll bool `yaml:"allowAll" json:"allowAll"` // 是否允许所有
DenyAll bool `yaml:"denyAll" json:"denyAll"` // 是否禁止所有
Allow []string `yaml:"allow" json:"allow"` // 允许的API
Deny []string `yaml:"deny" json:"deny"` // 禁止的API
} `yaml:"api" json:"api"` // API控制
Policy shared.AccessPolicy `yaml:"policy" json:"policy"` // 控制策略
}
API consumer
func (*APIConsumer) AllowAPI ¶
func (this *APIConsumer) AllowAPI(apiPath string) (passed bool)
消费API
type APIDataLimit ¶
type APIDataLimit struct {
Max uint `yaml:"max" json:"max"` // 最大数据量 TODO
Total uint `yaml:"total" json:"total"` // 数据量 TODO
Duration string `yaml:"duration" json:"duration"` // 数据限制间隔 TODO
// contains filtered or unexported fields
}
api数据量限制
type APILimit ¶
type APILimit struct {
Concurrent uint `yaml:"concurrent" json:"concurrent"` // 并发数
RequestLimits []*APIRequestLimit `yaml:"request" json:"request"` // 请求数限制 TODO
DataLimits []*APIDataLimit `yaml:"data" json:"data"` // 数据量限制 TODO
// contains filtered or unexported fields
}
API限制
type APIMock ¶
type APIMock struct {
Filename string `yaml:"filename" json:"filename"` // 保存的文件名
On bool `yaml:"on" json:"on"` // 是否开启
Headers []maps.Map `yaml:"headers" json:"headers"` // 输出的Header
Format string `yaml:"format" json:"format"` // 格式
Text string `yaml:"text" json:"text"` // 文本
File string `yaml:"file" json:"file"` // 文件名,一般是和文本二选一
Username string `yaml:"username" json:"username"` // 创建的用户名
CreatedAt int64 `yaml:"createdAt" json:"createdAt"` // 创建时间
}
API Mock定义
type APIParam ¶
type APIParam struct {
Name string `yaml:"name" json:"name"`
Type string `yaml:"type" json:"type"`
Description string `yaml:"description" json:"description"`
}
API参数定义
type APIRequestLimit ¶
type APIRequestLimit struct {
Count uint `yaml:"count" json:"count"` // 请求数 TODO
Duration string `yaml:"duration" json:"duration"` // 请求限制间隔 TODO
// contains filtered or unexported fields
}
api请求数限制
func (*APIRequestLimit) Validate ¶
func (this *APIRequestLimit) Validate() error
type APIScript ¶
type APIScript struct {
Filename string `yaml:"filename" json:"filename"` // 脚本路径
Code string `yaml:"code" json:"code"` // 代码
}
脚本定义
type APIStatus ¶
type APIStatus struct {
Code string `yaml:"code" json:"code"` // 代码
Description string `yaml:"description" json:"description"` // 描述
Groups []string `yaml:"groups" json:"groups"` // 分组
Versions []string `yaml:"versions" json:"versions"` // 版本
Type string `yaml:"type" json:"type"` // 类型
}
API状态定义
type APITestCase ¶
type APITestCase struct {
Filename string `yaml:"filename" json:"filename"` // 文件名
Name string `yaml:"name" json:"name"` // 名称
Domain string `yaml:"domain" json:"domain"` // 域名
Method string `yaml:"method" json:"method"` // 方法
Query string `yaml:"query" json:"query"` // URL附加参数
Headers []maps.Map `yaml:"headers" json:"headers"` // Header
Params []maps.Map `yaml:"params" json:"params"` // 内置参数
AttachParams []maps.Map `yaml:"attachParams" json:"attachParams"` // 附加参数
Format string `yaml:"format" json:"format"` // 响应格式
Username string `yaml:"username" json:"username"` // 用户名
CreatedAt int64 `yaml:"createdAt" json:"createdAt"` // 创建时间
UpdatedAt int64 `yaml:"updatedAt" json:"updatedAt"` // 更新时间
}
测试历史
type APITestPlan ¶
type APITestPlan struct {
On bool `yaml:"on" json:"on"` // 是否开启
Filename string `yaml:"filename" json:"filename"` // 配置文件名
Hour int `yaml:"hour" json:"hour"` // 小时
Minute int `yaml:"minute" json:"minute"` // 分钟
Second int `yaml:"second" json:"second"` // 秒
Weekdays []int `yaml:"weekdays" json:"weekdays"` // 周
Reports []string `yaml:"reports" json:"reports"` // 报告文件名
APIs []string `yaml:"apis" json:"apis"` // 参与计划的API TODO 需要实现
}
API测试计划
type APITestPlanReport ¶
type APITestPlanReport struct {
Filename string `yaml:"filename" json:"filename"` // 文件名
StartedAt int64 `yaml:"startedAt" json:"startedAt"` // 开始时间
FinishedAt int64 `yaml:"finishedAt" json:"finishedAt"` // 结束时间
TotalAPIs int `yaml:"totalApis" json:"totalApis"` // 总体API数量
TotalScripts int `yaml:"totalScripts" json:"totalScripts"` // 总体脚本总数
Results []*APITestResult `yaml:"results" json:"results"` // 统计
// contains filtered or unexported fields
}
API测试报告
func NewAPITestPlanReportFromFile ¶
func NewAPITestPlanReportFromFile(filename string) *APITestPlanReport
从配置文件中加载测试报告
func (*APITestPlanReport) AddAPIResult ¶
func (this *APITestPlanReport) AddAPIResult(apiResult *APITestResult)
添加API执行结果
func (*APITestPlanReport) CountFailedResults ¶
func (this *APITestPlanReport) CountFailedResults() int
计算失败的结果数
type APITestResult ¶
type APITestResult struct {
API string `yaml:"api" json:"api"` // API
Scripts []*APITestScriptResult `yaml:"scripts" json:"scripts"` // 脚本
IsPassed bool `yaml:"isPassed" json:"isPassed"` // 是否通过测试
}
单个API测试结果
func (*APITestResult) AddScriptResult ¶
func (this *APITestResult) AddScriptResult(scriptResult *APITestScriptResult)
添加脚本执行结果
type APITestScriptResult ¶
type APITestScriptResult struct {
Code string `yaml:"code" json:"code"` // 脚本代码
IsPassed bool `yaml:"isPassed" json:"isPassed"` // 是否通过测试
Failures []string `yaml:"failures" json:"failures"` // 失败
}
单个脚本测试结果
type APIVersion ¶
type APIVersion struct {
Name string `yaml:"name" json:"name"`
Code string `yaml:"code" json:"code"`
On bool `yaml:"on" json:"on"`
}
API版本定义
type ApiWatching ¶
type ApiWatching struct {
// contains filtered or unexported fields
}
API监控管理
func NewApiWatching ¶
func NewApiWatching() *ApiWatching
func (*ApiWatching) Add ¶
func (this *ApiWatching) Add(path string)
func (*ApiWatching) Contains ¶
func (this *ApiWatching) Contains(path string) bool
func (*ApiWatching) Remove ¶
func (this *ApiWatching) Remove(path string)
Source Files
¶
- api.go
- api_auth.go
- api_auth_basic.go
- api_auth_key.go
- api_auth_none.go
- api_config.go
- api_consumer.go
- api_data_limit.go
- api_limit.go
- api_mock.go
- api_param.go
- api_request_limit.go
- api_script.go
- api_status.go
- api_test_case.go
- api_test_plan.go
- api_test_plan_report.go
- api_test_result.go
- api_test_script_result.go
- api_version.go
- api_watch.go
Click to show internal directories.
Click to hide internal directories.