123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package test
- import (
- "scd_check_tools/conf"
- "scd_check_tools/email"
- "scd_check_tools/logger"
- "scd_check_tools/models/bo"
- "encoding/json"
- "fmt"
- "reflect"
- "regexp"
- "time"
- )
- //单元测试时使用的固定的用户token
- //在start时传入
- var UnitTestToken = ""
- //单元测试类
- type UnitTest struct {
- UserInfo map[string]interface{}
- }
- func Start(testtoken string) {
- //判断当前运行模式,仅当runmode为test时才启动所有的测试
- //启动时会执行该方法中所有的测试过程
- if conf.GlobalConfig["unittest"] != "true" {
- return
- }
- UnitTestToken = testtoken
- go func() {
- time.Sleep(10 * time.Second)
- t := new(UnitTest)
- logger.Logger.Println("******************正在进行单元测试********************")
- if t.UserInfo == nil {
- t.UserInfo = map[string]interface{}{"name": "单元测试", "ip": "127.0.0.1"}
- }
- typ := reflect.TypeOf(t)
- val := reflect.ValueOf(t) //获取reflect.Type类型
- numOfMethod := typ.NumMethod()
- logger.Logger.Println(fmt.Sprintf("需要进行的单元测试有%d个", numOfMethod))
- for i := 0; i < numOfMethod; i++ {
- val.Method(i).Call(nil)
- }
- }()
- }
- func (t *UnitTest) TestReg() {
- return
- xmlStr := `<LN0 lineno="211125" nodeid="4211127" desc="" inst="" lnClass="LLN0" lnType="AutoPrefix1532860310_SAC_PSIU600_LLN0" prefix="">`
- pattern := `( lineno="\d{1,}" nodeid="\d{1,}")|(
)|( ix="")|(<ext:eOption.*?>.*?</ext:eOption>)` //替换其中的lineno和nodeid属性
- reg := regexp.MustCompile(pattern)
- xmlStr = reg.ReplaceAllString(xmlStr, "")
- fmt.Println(xmlStr)
- }
- //测试邮件发送
- func (t *UnitTest) TestEmailSend() {
- return
- err := new(email.Send).SendEmail("3116246@qq.com", "测试", "这是邮件发送测试", []string{})
- if err != nil {
- logger.Logger.Error(err)
- } else {
- logger.Logger.Println("=====测试邮件已发送成功,请登录测试邮件确认!")
- }
- }
- //测试:根据告警等级统计结果
- func (t *UnitTest) GetRuleLevelCheckList() {
- return
- //appport := conf.GlobalConfig["appport"]
- //url := "http://127.0.0.1:" + appport + "/api/model/get_south_model"
- //logger.Logger.Println(fmt.Sprintf("============正在测试GetModelList方法,请求URL:%s", url))
- //testResult, _ := tools.Get(url, UnitTestToken)
- //logger.Logger.Println(fmt.Sprintf("============GetModelList方法测试结果:%+v", testResult))
- testobj := new(bo.ScdNodeRule)
- testobj.ScdID = 16000007
- logger.Logger.Println(fmt.Sprintf("============正在测试[根据告警等级统计结果]方法,参数:"))
- result, err := testobj.ResultStatByLevel("", "", "", "", "")
- if err != nil {
- logger.Logger.Error(err)
- }
- resultStr, _ := json.Marshal(result)
- logger.Logger.Println(fmt.Sprintf("============[根据告警等级统计结果]测试结果:%+v", string(resultStr)))
- }
- //测试:获取规则校验统计结果
- func (t *UnitTest) GetRuleCheckList() {
- return
- //appport := conf.GlobalConfig["appport"]
- //url := "http://127.0.0.1:" + appport + "/api/model/get_south_model"
- //logger.Logger.Println(fmt.Sprintf("============正在测试GetModelList方法,请求URL:%s", url))
- //testResult, _ := tools.Get(url, UnitTestToken)
- //logger.Logger.Println(fmt.Sprintf("============GetModelList方法测试结果:%+v", testResult))
- testobj := new(bo.ScdNodeRule)
- testobj.ScdID = 16000007
- logger.Logger.Println(fmt.Sprintf("============正在测试[获取规则校验统计结果]方法,参数:"))
- result, _, err := testobj.ResultList("", "", "", "", "", "", 1, 20)
- if err != nil {
- logger.Logger.Error(err)
- }
- resultStr, _ := json.Marshal(result)
- logger.Logger.Println(fmt.Sprintf("============[获取规则校验统计结果]测试结果:%+v", string(resultStr)))
- }
|