httprunner icon indicating copy to clipboard operation
httprunner copied to clipboard

通过定义测参数变量传递给自定义函数出现了参数传递异常,未能执行函数---"${to_upper($actKey)}",

Open JK-yan opened this issue 3 years ago • 2 comments

问题描述

全局WithVariables 定义一个变量,给step 中变量使用时,出错了。当不使用 函数to_upper , 直接"actKey":"$actKey" 是可以正常传递的

Config: NewConfig("查看staff 是否拥有权限").
WithVariables(map[string]interface{}{
				"actName": "${sec_time()}",                  //权限名称: 产线自定义权限名称
				"actKey":  "${first_name()}_${last_name()}", //权限标识
			}).

hrp.NewStep("验证staff是否拥有权限").
				WithVariables(map[string]interface{}{
					"staffOid":      "$staff_oid",
					"actKey":        "${to_upper($actKey)}", //权限 key
					"hasPermission": true,
				}).
				CallRefCase(searchStaffIsOwnPermissions()),

error:

{"level":"info","step":"验证staff是否拥有权限","type":"testcase","time":"2022-04-28T20:41:21+08:00","message":"run step start"}
{"level":"error","variables":{"accessToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NTM3NDE2ODEzNjQ1MjAwMDAsImp0aSI6IjYxZGNmY2E5YmJmNzc3MDAwMWRmNTdlYiIsImlhdCI6MTY1MTE0OTY4MTM2NDUyMDAwMCwiaXNzIjoiaWFtLnJjcmFpLmNvbSJ9.e5qBCYEZk47XuMDaCHYyBGwLsFuzka7r_fb-Q55jQt8","actKey":"$to_upper($actKey)","actName":"1651149681","bid":"61dcfca9bbf7770001df57e9","hasPermission":true,"permission_id":"626a8b71e00c58233f34dbcb","product_id":"625e62ca07ae44452708ea70","product_name":"KIRLIN","resource_id":"626a8b71e00c58233f34dbca","role_id":"626a8b71e00c58233f34dbcc","staffOid":"$staff_oid","staff_oid":"626a8b71e00c58233f34dbcd"},"time":"2022-04-28T20:41:21+08:00","message":"[parseVariables] variable self reference error"}
{"level":"error","variables":{"actKey":"Misael_Dietrich","actName":"1651149681"},"error":"variable self reference: actKey","time":"2022-04-28T20:41:21+08:00","message":"parse step variables failed"}
{"level":"error","step":"验证staff是否拥有权限","type":"testcase","success":false,"time":"2022-04-28T20:41:21+08:00","message":"run step end"}
{"level":"info","step":"验证staff是否拥有权限","type":"testcase","success":false,"exportVars":null,"time":"2022-04-28T20:41:21+08:00","message":"run step end"}

debugtalk.go

image

全部case和log

func CheckStaffPermissions() *hrp.TestCase {
	testcase := &hrp.TestCase{
		Config: NewConfig("查看staff 是否拥有权限").
			WithVariables(map[string]interface{}{
				"actName": "${sec_time()}",                  
				"actKey":  "${first_name()}_${last_name()}", 
			}).
			SetHeaders(map[string]string{
				"Content-Type": "application/json",
				"Rcrai-Bid":    "${env(GLOBAL_BID)}",
			}).
			SetBaseURL("${env(IAM_HOST)}").
			SetVerifySSL(false).
			ExportVars(),
		TestSteps: []hrp.IStep{
			hrp.NewStep("管理员登录").
				CallRefCase(Login()).
				Export("staffOid"),
			hrp.NewStep("获取产线列表").
				GET("/v1/product").
				Extract().
				WithJmesPath("body.products[0].id", "product_id").
				WithJmesPath("body.products[0].productName", "product_name").
				Validate().
				AssertEqual("status_code", 200, "check status code"),
			hrp.NewStep("新增资源").
				WithVariables(map[string]interface{}{
					"productId": "$product_id",
				}).
				CallRefCase(addResources()).
				Export("resource_id"),
			hrp.NewStep("创建权限").
				WithVariables(map[string]interface{}{
					"actName": "$actName",
					"actKey":  "$actKey",
					"resId":   "$resource_id",
				}).CallRefCase(addPermissions()).
				Export("permission_id"),
			hrp.NewStep("创建角色-SELF").
				WithVariables(map[string]interface{}{
					"code":                 200,
					"roleName":             "SELF_${get_timestamp()}", //角色名
					"actIds":               "$permission_id",        
					"customDeptPermission": "${uuid()}",            
					"dataPermission":       "SELF",                 
					"staff_oid":            "$staffOid",
				}).
				CallRefCase(addRole()).
				Export("role_id"),
			hrp.NewStep("创建staff").
				WithVariables(map[string]interface{}{
					"name":       "staff_${get_timestamp()}",
					"externalId": "${uuid()}",
				}).
				POST("/v1/staff").
				WithBody(map[string]interface{}{
					"roleIds": []interface{}{
						"$role_id",
					},
					"name":       "$name",
					"externalId": "$externalId",
				}).
				Extract().
				WithJmesPath("body.oid", "staff_oid").
				Validate().
				AssertEqual("status_code", 200, "check status  code"),
			hrp.NewStep("验证staff是否拥有权限").
				WithVariables(map[string]interface{}{
					"staffOid":      "$staff_oid",
					"actKey":        "$to_upper($actKey)", //权限 key
					"hasPermission": true,
				}).
				CallRefCase(searchStaffIsOwnPermissions()),
		},
	}
	return testcase
}
func searchStaffIsOwnPermissions() *hrp.TestCase {
	testcase := &hrp.TestCase{
		Config: NewConfig("查询staff是否拥有权限").
			WithVariables(map[string]interface{}{
				"staffOid":      "${uuid()}",
				"actKey":        "${uuid()}", //权限 key
				"hasPermission": true,
				"status_code":   200,
			}).
			SetHeaders(map[string]string{
				"Content-Type": "application/json",
				"Rcrai-Bid":    "${env(GLOBAL_BID)}",
			}).
			SetBaseURL("${env(IAM_HOST)}").
			SetVerifySSL(false),
		TestSteps: []hrp.IStep{
			hrp.NewStep("查询staff是否拥有权限").
				GET("/v1/action/permission").
				WithParams(map[string]interface{}{
					"staffOid": "$staffOid",
					"actKey":   "$actKey",
				}).
				Validate().
				AssertEqual("status_code", "$status_code", "check status  code").
				AssertEqual("body.hasPermission", "$hasPermission", "check hasPermission"),
		},
	}
	return testcase
}
GOROOT=/usr/local/go #gosetup
/usr/local/go/bin/go test -c -o /private/var/folders/d8/pdlv9w0164x2z04xsvy_b47h0000gn/T/GoLand/___TestCheckStaffPermissions_in_GoApiTest_internal_testcase.test GoApiTest/internal/testcase #gosetup
/usr/local/go/bin/go tool test2json -t /private/var/folders/d8/pdlv9w0164x2z04xsvy_b47h0000gn/T/GoLand/___TestCheckStaffPermissions_in_GoApiTest_internal_testcase.test -test.v -test.paniconexit0 -test.run ^\QTestCheckStaffPermissions\E$
=== RUN   TestCheckStaffPermissions
{"level":"info","time":"2022-04-28T20:41:20+08:00","message":"os set env GLOBAL_PASSWORD=1234qwerASDF!@#$"}
{"level":"info","time":"2022-04-28T20:41:20+08:00","message":"os set env DISABLE_GA=true"}
{"level":"info","time":"2022-04-28T20:41:20+08:00","message":"os set env [email protected]"}
{"level":"info","time":"2022-04-28T20:41:20+08:00","message":"[init] build hashicorp go plugin"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"[init] SetRequestsLogOn"}
{"level":"info","failfast":false,"time":"2022-04-28T20:41:21+08:00","message":"[init] SetFailfast"}
{"level":"info","genHTMLReport":true,"time":"2022-04-28T20:41:21+08:00","message":"[init] SetgenHTMLReport"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"[init] SetPluginLogOn"}
{"level":"info","count":1,"time":"2022-04-28T20:41:21+08:00","message":"load testcases successfully"}
2022-04-28T20:41:21.216+0800 [DEBUG] grpc-go.debugtalk.bin: 2022/04/28 20:41:21 plugin init function called 1111111111
2022-04-28T20:41:21.217+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","time":"2022-04-28T20:41:21+08:00","message":"start plugin server in gRPC mode"}
2022-04-28T20:41:21.217+0800 [DEBUG] grpc-go: using plugin: version=1
2022-04-28T20:41:21.217+0800 [DEBUG] grpc-go.debugtalk.bin: plugin address: address=/var/folders/d8/pdlv9w0164x2z04xsvy_b47h0000gn/T/plugin3579410216 network=unix timestamp="2022-04-28T20:41:21.217+0800"
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"function GetNames called on host side"}
2022-04-28T20:41:21.220+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{},"time":"2022-04-28T20:41:21+08:00","message":"gRPC GetNames() called on plugin side"}
{"level":"info","funcName":"sec_time","funcArgs":[],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.221+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"sec_time","args":"W10="},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"sec_time","arguments":[],"output":"1651149681","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"function GetNames called on host side"}
2022-04-28T20:41:21.222+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{},"time":"2022-04-28T20:41:21+08:00","message":"gRPC GetNames() called on plugin side"}
{"level":"info","funcName":"first_name","funcArgs":[],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.223+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"first_name","args":"W10="},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"first_name","arguments":[],"output":"Misael","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
{"level":"debug","parsedString":"Misael","matchStartPosition":15,"time":"2022-04-28T20:41:21+08:00","message":"[parseString] parse function"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"function GetNames called on host side"}
2022-04-28T20:41:21.223+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{},"time":"2022-04-28T20:41:21+08:00","message":"gRPC GetNames() called on plugin side"}
{"level":"info","funcName":"last_name","funcArgs":[],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.223+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"last_name","args":"W10="},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"last_name","arguments":[],"output":"Dietrich","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
{"level":"debug","parsedString":"Misael_Dietrich","matchStartPosition":30,"time":"2022-04-28T20:41:21+08:00","message":"[parseString] parse function"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"function GetNames called on host side"}
2022-04-28T20:41:21.223+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{},"time":"2022-04-28T20:41:21+08:00","message":"gRPC GetNames() called on plugin side"}
{"level":"info","funcName":"env","funcArgs":["IAM_HOST"],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.224+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"env","args":"WyJJQU1fSE9TVCJd"},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"env","arguments":["IAM_HOST"],"output":"http://127.0.0.1:80","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"reset session runner"}
{"level":"info","testcase":"查看staff 是否拥有权限","time":"2022-04-28T20:41:21+08:00","message":"run testcase start"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"reset session runner"}
{"level":"info","step":"管理员登录","type":"testcase","time":"2022-04-28T20:41:21+08:00","message":"run step start"}
2022-04-28T20:41:21.238+0800 [DEBUG] grpc-go.debugtalk.bin: 2022/04/28 20:41:21 plugin init function called 1111111111
2022-04-28T20:41:21.238+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","time":"2022-04-28T20:41:21+08:00","message":"start plugin server in gRPC mode"}
2022-04-28T20:41:21.239+0800 [DEBUG] grpc-go.debugtalk.bin: plugin address: address=/var/folders/d8/pdlv9w0164x2z04xsvy_b47h0000gn/T/plugin3519572762 network=unix timestamp="2022-04-28T20:41:21.239+0800"
2022-04-28T20:41:21.239+0800 [DEBUG] grpc-go: using plugin: version=1
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"function GetNames called on host side"}
2022-04-28T20:41:21.241+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{},"time":"2022-04-28T20:41:21+08:00","message":"gRPC GetNames() called on plugin side"}
{"level":"info","funcName":"env","funcArgs":["GLOBAL_EMAIL"],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.242+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"env","args":"WyJHTE9CQUxfRU1BSUwiXQ=="},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"env","arguments":["GLOBAL_EMAIL"],"output":"[email protected]","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
{"level":"info","funcName":"env","funcArgs":["GLOBAL_PASSWORD"],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.244+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"env","args":"WyJHTE9CQUxfUEFTU1dPUkQiXQ=="},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"env","arguments":["GLOBAL_PASSWORD"],"output":"1234qwerASDF!@#$","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
{"level":"info","funcName":"env","funcArgs":["IAM_HOST"],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.245+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"env","args":"WyJJQU1fSE9TVCJd"},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"env","arguments":["IAM_HOST"],"output":"http://127.0.0.1:80","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"reset session runner"}
{"manual_add":false,"pass":"1234qwerASDF!@#$","roles":["管理员"]},"roles":[{"id":"62652c8e4f656721550625be","bid":"61dcfca9bbf7770001df57e9","name":"ADMIN","roleType":"ADMIN"}],"role":{"bid":"61dcfca9bbf7770001df57e9","id":"62652c8e4f656721550625be","oid":"62652c8e4f656721550625be","name":"ADMIN","pageAuth":null,"operationAuth":null,"dataAuth":null,"createdAt":null,"updatedAt":null},"department":{"bid":"61dcfca9bbf7770001df57e9","id":"82d2dd18-7290-11ec-aa8a-22d7afb7822d","oid":"61dcfca9b7276d6ec7e381db","externalId":"root","name":"root","createdAt":"2022-01-11T03:42:33.736Z","updatedAt":"2022-01-11T03:42:33.736Z"},"createdAt":"2022-01-11T03:42:33.176Z","updatedAt":"2022-04-25T07:02:16.689Z"}}
--------------------------------------------------
{"level":"info","from":"body.token.accessToken","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NTM3NDE2ODEzNjQ1MjAwMDAsImp0aSI6IjYxZGNmY2E5YmJmNzc3MDAwMWRmNTdlYiIsImlhdCI6MTY1MTE0OTY4MTM2NDUyMDAwMCwiaXNzIjoiaWFtLnJjcmFpLmNvbSJ9.e5qBCYEZk47XuMDaCHYyBGwLsFuzka7r_fb-Q55jQt8","time":"2022-04-28T20:41:21+08:00","message":"extract value"}
{"level":"info","variable":"accessToken","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NTM3NDE2ODEzNjQ1MjAwMDAsImp0aSI6IjYxZGNmY2E5YmJmNzc3MDAwMWRmNTdlYiIsImlhdCI6MTY1MTE0OTY4MTM2NDUyMDAwMCwiaXNzIjoiaWFtLnJjcmFpLmNvbSJ9.e5qBCYEZk47XuMDaCHYyBGwLsFuzka7r_fb-Q55jQt8","time":"2022-04-28T20:41:21+08:00","message":"set variable"}
{"level":"info","from":"body.token.bid","value":"61dcfca9bbf7770001df57e9","time":"2022-04-28T20:41:21+08:00","message":"extract value"}
{"level":"info","variable":"bid","value":"61dcfca9bbf7770001df57e9","time":"2022-04-28T20:41:21+08:00","message":"set variable"}
{"level":"info","from":"body.token.staffOid","value":"61dcfca9bbf7770001df57eb","time":"2022-04-28T20:41:21+08:00","message":"extract value"}
{"level":"info","variable":"staffOid","value":"61dcfca9bbf7770001df57eb","time":"2022-04-28T20:41:21+08:00","message":"set variable"}
{"level":"info","from":"body.staff.externalId","value":"61dcfca9bbf7770001df57ec","time":"2022-04-28T20:41:21+08:00","message":"extract value"}
{"level":"info","variable":"externalId","value":"61dcfca9bbf7770001df57ec","time":"2022-04-28T20:41:21+08:00","message":"set variable"}
{"level":"info","checkExpr":"status_code","assertMethod":"equals","expectValue":200,"expectValueType":"int64","checkValue":200,"checkValueType":"int64","result":true,"time":"2022-04-28T20:41:21+08:00","message":"validate status_code"}
{"level":"info","step":"登录","type":"request","success":true,"exportVars":{"accessToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NTM3NDE2ODEzNjQ1MjAwMDAsImp0aSI6IjYxZGNmY2E5YmJmNzc3MDAwMWRmNTdlYiIsImlhdCI6MTY1MTE0OTY4MTM2NDUyMDAwMCwiaXNzIjoiaWFtLnJjcmFpLmNvbSJ9.e5qBCYEZk47XuMDaCHYyBGwLsFuzka7r_fb-Q55jQt8","bid":"61dcfca9bbf7770001df57e9","externalId":"61dcfca9bbf7770001df57ec","staffOid":"61dcfca9bbf7770001df57eb"},"time":"2022-04-28T20:41:21+08:00","message":"run step end"}
eckExpr":"status_code","assertMethod":"equals","expectValue":200,"expectValueType":"int64","checkValue":200,"checkValueType":"int64","result":true,"time":"2022-04-28T20:41:21+08:00","message":"validate status_code"}
{"level":"info","step":"获取产线列表","type":"request","success":true,"exportVars":{"product_id":"625e62ca07ae44452708ea70","product_name":"KIRLIN"},"time":"2022-04-28T20:41:21+08:00","message":"run step end"}
{"level":"info","step":"新增资源","type":"testcase","time":"2022-04-28T20:41:21+08:00","message":"run step start"}
2022-04-28T20:41:21.387+0800 [DEBUG] grpc-go.debugtalk.bin: 2022/04/28 20:41:21 plugin init function called 1111111111
2022-04-28T20:41:21.387+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","time":"2022-04-28T20:41:21+08:00","message":"start plugin server in gRPC mode"}
2022-04-28T20:41:21.388+0800 [DEBUG] grpc-go.debugtalk.bin: plugin address: address=/var/folders/d8/pdlv9w0164x2z04xsvy_b47h0000gn/T/plugin1215803598 network=unix timestamp="2022-04-28T20:41:21.388+0800"
2022-04-28T20:41:21.388+0800 [DEBUG] grpc-go: using plugin: version=1
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"function GetNames called on host side"}
2022-04-28T20:41:21.390+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{},"time":"2022-04-28T20:41:21+08:00","message":"gRPC GetNames() called on plugin side"}
{"level":"info","funcName":"last_name","funcArgs":[],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.390+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"last_name","args":"W10="},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"last_name","arguments":[],"output":"Rogahn","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"function GetNames called on host side"}
2022-04-28T20:41:21.391+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{},"time":"2022-04-28T20:41:21+08:00","message":"gRPC GetNames() called on plugin side"}
{"level":"info","funcName":"env","funcArgs":["IAM_HOST"],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.391+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"env","args":"WyJJQU1fSE9TVCJd"},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"env","arguments":["IAM_HOST"],"output":"http://127.0.0.1:80","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"reset session runner"}
{"level":"info","testcase":"新增资源","time":"2022-04-28T20:41:21+08:00","message":"run testcase start"}
{"level":"info","parameters":{"accessToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NTM3NDE2ODEzNjQ1MjAwMDAsImp0aSI6IjYxZGNmY2E5YmJmNzc3MDAwMWRmNTdlYiIsImlhdCI6MTY1MTE0OTY4MTM2NDUyMDAwMCwiaXNzIjoiaWFtLnJjcmFpLmNvbSJ9.e5qBCYEZk47XuMDaCHYyBGwLsFuzka7r_fb-Q55jQt8","actKey":"Misael_Dietrich","actName":"1651149681","bid":"61dcfca9bbf7770001df57e9","productId":"625e62ca07ae44452708ea70","product_id":"625e62ca07ae44452708ea70","product_name":"KIRLIN","staffOid":"61dcfca9bbf7770001df57eb"},"time":"2022-04-28T20:41:21+08:00","message":"update config variables"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"reset session runner"}
{"level":"info","step":"新增资源","type":"request-POST","time":"2022-04-28T20:41:21+08:00","message":"run step start"}
{"level":"info","funcName":"env","funcArgs":["GLOBAL_BID"],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.391+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"env","args":"WyJHTE9CQUxfQklEIl0="},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"env","arguments":["GLOBAL_BID"],"output":"61dcfca9bbf7770001df57e9","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
-------------------- request --------------------
POST /v1/resource HTTP/1.1
Host: 127.0.0.1:80
Content-Type: application/json
Rcrai-Bid: 61dcfca9bbf7770001df57e9

{"productId":"625e62ca07ae44452708ea70","resName":"Rogahn"}
==================== response ====================
HTTP/1.1 200 OK
Content-Length: 175
Content-Type: application/json
Date: Thu, 28 Apr 2022 12:41:21 GMT
Grpc-Metadata-Content-Type: application/grpc
Grpc-Metadata-Traceid: 8f0c1cb2b385309fc8843f5860931832

{"id":"626a8b71e00c58233f34dbca","productId":"625e62ca07ae44452708ea70","resName":"Rogahn","createdAt":"2022-04-28T12:41:21.394808Z","updatedAt":"2022-04-28T12:41:21.394808Z"}
--------------------------------------------------
{"level":"info","from":"body.id","value":"626a8b71e00c58233f34dbca","time":"2022-04-28T20:41:21+08:00","message":"extract value"}
{"level":"info","variable":"resource_id","value":"626a8b71e00c58233f34dbca","time":"2022-04-28T20:41:21+08:00","message":"set variable"}
{"level":"info","checkExpr":"status_code","assertMethod":"equals","expectValue":200,"expectValueType":"int64","checkValue":200,"checkValueType":"int64","result":true,"time":"2022-04-28T20:41:21+08:00","message":"validate status_code"}
{"level":"info","checkExpr":"body.resName","assertMethod":"equals","expectValue":"Rogahn","expectValueType":"string","checkValue":"Rogahn","checkValueType":"string","result":true,"time":"2022-04-28T20:41:21+08:00","message":"validate body.resName"}
{"level":"info","checkExpr":"body.productId","assertMethod":"equals","expectValue":"625e62ca07ae44452708ea70","expectValueType":"string","checkValue":"625e62ca07ae44452708ea70","checkValueType":"string","result":true,"time":"2022-04-28T20:41:21+08:00","message":"validate body.productId"}
{"level":"info","step":"新增资源","type":"request","success":true,"exportVars":{"resource_id":"626a8b71e00c58233f34dbca"},"time":"2022-04-28T20:41:21+08:00","message":"run step end"}
{"level":"info","testcase":"新增资源","time":"2022-04-28T20:41:21+08:00","message":"run testcase end"}
{"level":"info","step":"新增资源","type":"testcase","success":true,"exportVars":{"resource_id":"626a8b71e00c58233f34dbca"},"time":"2022-04-28T20:41:21+08:00","message":"run step end"}
{"level":"info","step":"创建权限","type":"testcase","time":"2022-04-28T20:41:21+08:00","message":"run step start"}
2022-04-28T20:41:21.408+0800 [DEBUG] grpc-go.debugtalk.bin: 2022/04/28 20:41:21 plugin init function called 1111111111
2022-04-28T20:41:21.408+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","time":"2022-04-28T20:41:21+08:00","message":"start plugin server in gRPC mode"}
2022-04-28T20:41:21.409+0800 [DEBUG] grpc-go.debugtalk.bin: plugin address: address=/var/folders/d8/pdlv9w0164x2z04xsvy_b47h0000gn/T/plugin2682641947 network=unix timestamp="2022-04-28T20:41:21.408+0800"
2022-04-28T20:41:21.409+0800 [DEBUG] grpc-go: using plugin: version=1
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"function GetNames called on host side"}
2022-04-28T20:41:21.411+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{},"time":"2022-04-28T20:41:21+08:00","message":"gRPC GetNames() called on plugin side"}
{"level":"info","funcName":"env","funcArgs":["IAM_HOST"],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.412+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"env","args":"WyJJQU1fSE9TVCJd"},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"env","arguments":["IAM_HOST"],"output":"http://127.0.0.1:80","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"reset session runner"}
{"level":"info","testcase":"创建权限","time":"2022-04-28T20:41:21+08:00","message":"run testcase start"}
{"level":"info","parameters":{"accessToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NTM3NDE2ODEzNjQ1MjAwMDAsImp0aSI6IjYxZGNmY2E5YmJmNzc3MDAwMWRmNTdlYiIsImlhdCI6MTY1MTE0OTY4MTM2NDUyMDAwMCwiaXNzIjoiaWFtLnJjcmFpLmNvbSJ9.e5qBCYEZk47XuMDaCHYyBGwLsFuzka7r_fb-Q55jQt8","actKey":"Misael_Dietrich","actName":"1651149681","bid":"61dcfca9bbf7770001df57e9","product_id":"625e62ca07ae44452708ea70","product_name":"KIRLIN","resId":"626a8b71e00c58233f34dbca","resource_id":"626a8b71e00c58233f34dbca","staffOid":"61dcfca9bbf7770001df57eb"},"time":"2022-04-28T20:41:21+08:00","message":"update config variables"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"reset session runner"}
{"level":"info","step":"创建权限","type":"request-POST","time":"2022-04-28T20:41:21+08:00","message":"run step start"}
{"level":"info","funcName":"env","funcArgs":["GLOBAL_BID"],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.413+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"env","args":"WyJHTE9CQUxfQklEIl0="},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"env","arguments":["GLOBAL_BID"],"output":"61dcfca9bbf7770001df57e9","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
-------------------- request --------------------
POST /v1/action HTTP/1.1
Host: 127.0.0.1:80
Content-Type: application/json
Rcrai-Bid: 61dcfca9bbf7770001df57e9

{"actKey":"Misael_Dietrich","actName":"1651149681","resId":"626a8b71e00c58233f34dbca"}
==================== response ====================
HTTP/1.1 200 OK
Content-Length: 202
Content-Type: application/json
Date: Thu, 28 Apr 2022 12:41:21 GMT
Grpc-Metadata-Content-Type: application/grpc
Grpc-Metadata-Traceid: aa386ad4275de8e31a9bdc35f0a1c840

{"id":"626a8b71e00c58233f34dbcb","resId":"626a8b71e00c58233f34dbca","actName":"1651149681","actKey":"MISAEL_DIETRICH","createdAt":"2022-04-28T12:41:21.416563Z","updatedAt":"2022-04-28T12:41:21.416563Z"}
--------------------------------------------------
{"level":"info","from":"body.id","value":"626a8b71e00c58233f34dbcb","time":"2022-04-28T20:41:21+08:00","message":"extract value"}
{"level":"info","variable":"permission_id","value":"626a8b71e00c58233f34dbcb","time":"2022-04-28T20:41:21+08:00","message":"set variable"}
{"level":"info","checkExpr":"status_code","assertMethod":"equals","expectValue":200,"expectValueType":"int64","checkValue":200,"checkValueType":"int64","result":true,"time":"2022-04-28T20:41:21+08:00","message":"validate status_code"}
{"level":"info","checkExpr":"body.actName","assertMethod":"equals","expectValue":"1651149681","expectValueType":"string","checkValue":"1651149681","checkValueType":"string","result":true,"time":"2022-04-28T20:41:21+08:00","message":"validate body.actName"}
{"level":"info","checkExpr":"body.resId","assertMethod":"equals","expectValue":"626a8b71e00c58233f34dbca","expectValueType":"string","checkValue":"626a8b71e00c58233f34dbca","checkValueType":"string","result":true,"time":"2022-04-28T20:41:21+08:00","message":"validate body.resId"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"function GetNames called on host side"}
2022-04-28T20:41:21.422+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{},"time":"2022-04-28T20:41:21+08:00","message":"gRPC GetNames() called on plugin side"}
{"level":"info","funcName":"to_upper","funcArgs":["Misael_Dietrich"],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.423+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"to_upper","args":"WyJNaXNhZWxfRGlldHJpY2giXQ=="},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"to_upper","arguments":["$actKey"],"output":"MISAEL_DIETRICH","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
{"level":"info","checkExpr":"body.actKey","assertMethod":"equals","expectValue":"MISAEL_DIETRICH","expectValueType":"string","checkValue":"MISAEL_DIETRICH","checkValueType":"string","result":true,"time":"2022-04-28T20:41:21+08:00","message":"validate body.actKey"}
{"level":"info","step":"创建权限","type":"request","success":true,"exportVars":{"permission_id":"626a8b71e00c58233f34dbcb"},"time":"2022-04-28T20:41:21+08:00","message":"run step end"}
{"level":"info","testcase":"创建权限","time":"2022-04-28T20:41:21+08:00","message":"run testcase end"}
{"level":"info","step":"创建权限","type":"testcase","success":true,"exportVars":{"permission_id":"626a8b71e00c58233f34dbcb"},"time":"2022-04-28T20:41:21+08:00","message":"run step end"}
{"level":"info","step":"创建角色-SELF","type":"testcase","time":"2022-04-28T20:41:21+08:00","message":"run step start"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"function GetNames called on host side"}
2022-04-28T20:41:21.423+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{},"time":"2022-04-28T20:41:21+08:00","message":"gRPC GetNames() called on plugin side"}
{"level":"info","funcName":"get_timestamp","arguments":[],"output":1651149681423,"time":"2022-04-28T20:41:21+08:00","message":"call function success"}
{"level":"debug","parsedString":"SELF_1651149681423","matchStartPosition":23,"time":"2022-04-28T20:41:21+08:00","message":"[parseString] parse function"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"function GetNames called on host side"}
2022-04-28T20:41:21.424+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{},"time":"2022-04-28T20:41:21+08:00","message":"gRPC GetNames() called on plugin side"}
{"level":"info","funcName":"uuid","funcArgs":[],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.424+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"uuid","args":"W10="},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"uuid","arguments":[],"output":"bf3485d7-0f76-4afd-9d75-3f76f8e01f42","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
2022-04-28T20:41:21.434+0800 [DEBUG] grpc-go.debugtalk.bin: 2022/04/28 20:41:21 plugin init function called 1111111111
2022-04-28T20:41:21.434+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","time":"2022-04-28T20:41:21+08:00","message":"start plugin server in gRPC mode"}
2022-04-28T20:41:21.436+0800 [DEBUG] grpc-go.debugtalk.bin: plugin address: address=/var/folders/d8/pdlv9w0164x2z04xsvy_b47h0000gn/T/plugin522203911 network=unix timestamp="2022-04-28T20:41:21.436+0800"
2022-04-28T20:41:21.436+0800 [DEBUG] grpc-go: using plugin: version=1
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"function GetNames called on host side"}
2022-04-28T20:41:21.437+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{},"time":"2022-04-28T20:41:21+08:00","message":"gRPC GetNames() called on plugin side"}
{"level":"info","funcName":"last_name","funcArgs":[],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.438+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"last_name","args":"W10="},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"last_name","arguments":[],"output":"Oberbrunner","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"function GetNames called on host side"}
{"level":"info","funcName":"env","funcArgs":["IAM_HOST"],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.439+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{},"time":"2022-04-28T20:41:21+08:00","message":"gRPC GetNames() called on plugin side"}
2022-04-28T20:41:21.439+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"env","args":"WyJJQU1fSE9TVCJd"},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"env","arguments":["IAM_HOST"],"output":"http://127.0.0.1:80","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"reset session runner"}
{"level":"info","testcase":"创建角色-SELF","time":"2022-04-28T20:41:21+08:00","message":"run testcase start"}
{"level":"info","parameters":{"accessToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NTM3NDE2ODEzNjQ1MjAwMDAsImp0aSI6IjYxZGNmY2E5YmJmNzc3MDAwMWRmNTdlYiIsImlhdCI6MTY1MTE0OTY4MTM2NDUyMDAwMCwiaXNzIjoiaWFtLnJjcmFpLmNvbSJ9.e5qBCYEZk47XuMDaCHYyBGwLsFuzka7r_fb-Q55jQt8","actIds":"626a8b71e00c58233f34dbcb","actKey":"Misael_Dietrich","actName":"1651149681","bid":"61dcfca9bbf7770001df57e9","code":200,"customDeptPermission":"bf3485d7-0f76-4afd-9d75-3f76f8e01f42","dataPermission":"SELF","permission_id":"626a8b71e00c58233f34dbcb","product_id":"625e62ca07ae44452708ea70","product_name":"KIRLIN","resource_id":"626a8b71e00c58233f34dbca","roleName":"SELF_1651149681423","staffOid":"61dcfca9bbf7770001df57eb","staff_oid":"61dcfca9bbf7770001df57eb"},"time":"2022-04-28T20:41:21+08:00","message":"update config variables"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"reset session runner"}
{"level":"info","step":"新增角色","type":"request-POST","time":"2022-04-28T20:41:21+08:00","message":"run step start"}
{"level":"info","funcName":"env","funcArgs":["GLOBAL_BID"],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.440+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"env","args":"WyJHTE9CQUxfQklEIl0="},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"env","arguments":["GLOBAL_BID"],"output":"61dcfca9bbf7770001df57e9","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
-------------------- request --------------------
POST /v1/role HTTP/1.1
Host: 127.0.0.1:80
Content-Type: application/json
Rcrai-Bid: 61dcfca9bbf7770001df57e9
Rcrai-Staff-Id: 61dcfca9bbf7770001df57eb

{"actIds":["626a8b71e00c58233f34dbcb"],"customDeptPermission":["bf3485d7-0f76-4afd-9d75-3f76f8e01f42"],"dataPermission":"SELF","roleName":"SELF_1651149681423"}
==================== response ====================
HTTP/1.1 200 OK
Content-Length: 495
Content-Type: application/json
Date: Thu, 28 Apr 2022 12:41:21 GMT
Grpc-Metadata-Content-Type: application/grpc
Grpc-Metadata-Traceid: 3ecc390f1873e713fd391d666f9e20b5

{"id":"626a8b71e00c58233f34dbcc","bid":"61dcfca9bbf7770001df57e9","name":"SELF_1651149681423","roleType":"NORMAL","actions":[{"id":"626a8b71e00c58233f34dbcb","resId":"626a8b71e00c58233f34dbca","actName":"1651149681","actKey":"MISAEL_DIETRICH","createdAt":"2022-04-28T12:41:21.417Z","updatedAt":"2022-04-28T12:41:21.417Z"}],"dataPermission":"SELF","customDeptPermission":["bf3485d7-0f76-4afd-9d75-3f76f8e01f42"],"createdAt":"2022-04-28T12:41:21.448918Z","updatedAt":"2022-04-28T12:41:21.448918Z"}
--------------------------------------------------
{"level":"info","from":"body.id","value":"626a8b71e00c58233f34dbcc","time":"2022-04-28T20:41:21+08:00","message":"extract value"}
{"level":"info","variable":"role_id","value":"626a8b71e00c58233f34dbcc","time":"2022-04-28T20:41:21+08:00","message":"set variable"}
{"level":"info","checkExpr":"status_code","assertMethod":"equals","expectValue":200,"expectValueType":"int64","checkValue":200,"checkValueType":"int64","result":true,"time":"2022-04-28T20:41:21+08:00","message":"validate status_code"}
{"level":"info","checkExpr":"body.roleType","assertMethod":"equals","expectValue":"NORMAL","expectValueType":"string","checkValue":"NORMAL","checkValueType":"string","result":true,"time":"2022-04-28T20:41:21+08:00","message":"validate body.roleType"}
{"level":"info","checkExpr":"body.name","assertMethod":"equals","expectValue":"SELF_1651149681423","expectValueType":"string","checkValue":"SELF_1651149681423","checkValueType":"string","result":true,"time":"2022-04-28T20:41:21+08:00","message":"validate body.name"}
{"level":"info","step":"新增角色","type":"request","success":true,"exportVars":{"role_id":"626a8b71e00c58233f34dbcc"},"time":"2022-04-28T20:41:21+08:00","message":"run step end"}
{"level":"info","testcase":"创建角色-SELF","time":"2022-04-28T20:41:21+08:00","message":"run testcase end"}
{"level":"info","step":"创建角色-SELF","type":"testcase","success":true,"exportVars":{"role_id":"626a8b71e00c58233f34dbcc"},"time":"2022-04-28T20:41:21+08:00","message":"run step end"}
{"level":"info","step":"创建staff","type":"request-POST","time":"2022-04-28T20:41:21+08:00","message":"run step start"}
{"level":"info","funcName":"uuid","funcArgs":[],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.464+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"uuid","args":"W10="},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"uuid","arguments":[],"output":"2b26c86c-62d1-4858-b085-311fe72558b3","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
{"level":"info","funcName":"get_timestamp","arguments":[],"output":1651149681464,"time":"2022-04-28T20:41:21+08:00","message":"call function success"}
{"level":"debug","parsedString":"staff_1651149681464","matchStartPosition":24,"time":"2022-04-28T20:41:21+08:00","message":"[parseString] parse function"}
{"level":"info","funcName":"env","funcArgs":["GLOBAL_BID"],"time":"2022-04-28T20:41:21+08:00","message":"call function via gRPC"}
2022-04-28T20:41:21.464+0800 [DEBUG] grpc-go.debugtalk.bin: {"level":"info","req":{"name":"env","args":"WyJHTE9CQUxfQklEIl0="},"time":"2022-04-28T20:41:21+08:00","message":"gRPC Call() called on plugin side"}
{"level":"info","funcName":"env","arguments":["GLOBAL_BID"],"output":"61dcfca9bbf7770001df57e9","time":"2022-04-28T20:41:21+08:00","message":"call function success"}
-------------------- request --------------------
POST /v1/staff HTTP/1.1
Host: 127.0.0.1:80
Content-Type: application/json
Rcrai-Bid: 61dcfca9bbf7770001df57e9

{"externalId":"2b26c86c-62d1-4858-b085-311fe72558b3","name":"staff_1651149681464","roleIds":["626a8b71e00c58233f34dbcc"]}
==================== response ====================
HTTP/1.1 200 OK
Content-Length: 771
Content-Type: application/json
Date: Thu, 28 Apr 2022 12:41:21 GMT
Grpc-Metadata-Content-Type: application/grpc
Grpc-Metadata-Traceid: 5b915449175ebbc93edfb7041be77fcd

{"bid":"61dcfca9bbf7770001df57e9","id":"81da3d5c-c6f0-11ec-92b1-acde48001122","oid":"626a8b71e00c58233f34dbcd","externalId":"2b26c86c-62d1-4858-b085-311fe72558b3","email":"[email protected]","phone":"","name":"staff_1651149681464","departmentExternalId":"root","managerExternalId":"","status":"NORMAL","profile":{},"roles":[{"id":"626a8b71e00c58233f34dbcc","bid":"61dcfca9bbf7770001df57e9","name":"SELF_1651149681423","roleType":"NORMAL"}],"role":{"bid":"61dcfca9bbf7770001df57e9","id":"626a8b71e00c58233f34dbcc","oid":"626a8b71e00c58233f34dbcc","name":"SELF_1651149681423","pageAuth":null,"operationAuth":null,"dataAuth":null,"createdAt":null,"updatedAt":null},"createdAt":"2022-04-28T12:41:21.465692Z","updatedAt":"2022-04-28T12:41:21.465692Z"}
--------------------------------------------------
{"level":"info","from":"body.oid","value":"626a8b71e00c58233f34dbcd","time":"2022-04-28T20:41:21+08:00","message":"extract value"}
{"level":"info","variable":"staff_oid","value":"626a8b71e00c58233f34dbcd","time":"2022-04-28T20:41:21+08:00","message":"set variable"}
{"level":"info","checkExpr":"status_code","assertMethod":"equals","expectValue":200,"expectValueType":"int64","checkValue":200,"checkValueType":"int64","result":true,"time":"2022-04-28T20:41:21+08:00","message":"validate status_code"}
{"level":"info","step":"创建staff","type":"request","success":true,"exportVars":{"staff_oid":"626a8b71e00c58233f34dbcd"},"time":"2022-04-28T20:41:21+08:00","message":"run step end"}
{"level":"info","step":"验证staff是否拥有权限","type":"testcase","time":"2022-04-28T20:41:21+08:00","message":"run step start"}
{"level":"error","variables":{"accessToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NTM3NDE2ODEzNjQ1MjAwMDAsImp0aSI6IjYxZGNmY2E5YmJmNzc3MDAwMWRmNTdlYiIsImlhdCI6MTY1MTE0OTY4MTM2NDUyMDAwMCwiaXNzIjoiaWFtLnJjcmFpLmNvbSJ9.e5qBCYEZk47XuMDaCHYyBGwLsFuzka7r_fb-Q55jQt8","actKey":"$to_upper($actKey)","actName":"1651149681","bid":"61dcfca9bbf7770001df57e9","hasPermission":true,"permission_id":"626a8b71e00c58233f34dbcb","product_id":"625e62ca07ae44452708ea70","product_name":"KIRLIN","resource_id":"626a8b71e00c58233f34dbca","role_id":"626a8b71e00c58233f34dbcc","staffOid":"$staff_oid","staff_oid":"626a8b71e00c58233f34dbcd"},"time":"2022-04-28T20:41:21+08:00","message":"[parseVariables] variable self reference error"}
{"level":"error","variables":{"actKey":"Misael_Dietrich","actName":"1651149681"},"error":"variable self reference: actKey","time":"2022-04-28T20:41:21+08:00","message":"parse step variables failed"}
{"level":"error","step":"验证staff是否拥有权限","type":"testcase","success":false,"time":"2022-04-28T20:41:21+08:00","message":"run step end"}
{"level":"info","step":"验证staff是否拥有权限","type":"testcase","success":false,"exportVars":null,"time":"2022-04-28T20:41:21+08:00","message":"run step end"}
{"level":"info","testcase":"查看staff 是否拥有权限","time":"2022-04-28T20:41:21+08:00","message":"run testcase end"}
{"level":"info","path":"reports","time":"2022-04-28T20:41:21+08:00","message":"create folder"}
{"level":"info","path":"reports/report-1651149681.html","time":"2022-04-28T20:41:21+08:00","message":"generate HTML report"}
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"quit hashicorp plugin process"}
2022-04-28T20:41:21.584+0800 [DEBUG] grpc-go.stdio: received EOF, stopping recv loop: err="rpc error: code = Unavailable desc = error reading from server: EOF"
2022-04-28T20:41:21.585+0800 [DEBUG] grpc-go: plugin exited
{"level":"info","time":"2022-04-28T20:41:21+08:00","message":"[teardown] remove hashicorp plugin"}
--- PASS: TestCheckStaffPermissions (1.50s)
PASS

Process finished with the exit code 0

版本信息

请提供如下版本信息:

  • Go 版本: master 分支 github.com/httprunner/httprunner v1.5.16-0.20220421140208-5d7a77fbe1d8

项目文件内容(非必须)

如果可能,提供项目测试用例文件原始内容可加快 bug 定位和修复速度。

提示:请注意在去除项目敏感信息(IP、账号密码、密钥等)后再进行上传。

JK-yan avatar Apr 28 '22 13:04 JK-yan

@JK-yan 你在运行测试之前,有对 debugtalk.go 做编译么?

debugtalk avatar May 03 '22 05:05 debugtalk

@JK-yan 你在运行测试之前,有对 debugtalk.go 做编译么?

编译了,包括这个函数在其他用例里面都可以正常使用, 就这出问题了,

JK-yan avatar May 03 '22 14:05 JK-yan