mirror of
https://github.com/httprunner/httprunner.git
synced 2026-06-28 02:51:42 +08:00
feat: server支持自定义公共方法
This commit is contained in:
@@ -14,7 +14,7 @@ import (
|
||||
"github.com/httprunner/httprunner/v5/pkg/uixt/option"
|
||||
)
|
||||
|
||||
func (r *Router) GetDriver(c *gin.Context) (driverExt uixt.IXTDriver, err error) {
|
||||
func (p RouterBaseMethod) GetDriver(c *gin.Context) (driverExt uixt.IXTDriver, err error) {
|
||||
deviceObj, exists := c.Get("device")
|
||||
var device uixt.IDevice
|
||||
var driver uixt.IDriver
|
||||
@@ -54,7 +54,6 @@ func GetDevice(c *gin.Context) (device uixt.IDevice, err error) {
|
||||
RenderErrorInitDriver(c, err)
|
||||
return
|
||||
}
|
||||
_ = device.Setup()
|
||||
case "ios":
|
||||
device, err = uixt.NewIOSDevice(
|
||||
option.WithUDID(serial),
|
||||
@@ -70,6 +69,10 @@ func GetDevice(c *gin.Context) (device uixt.IDevice, err error) {
|
||||
err = fmt.Errorf("[%s]: invalid platform", c.HandlerName())
|
||||
return
|
||||
}
|
||||
err = device.Setup()
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("setup device failed")
|
||||
}
|
||||
c.Set("device", device)
|
||||
return device, nil
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import (
|
||||
"github.com/httprunner/httprunner/v5/server"
|
||||
)
|
||||
|
||||
func (r *RouterExt) GetDriver(c *gin.Context) (driverExt uixt.IXTDriver, err error) {
|
||||
func (p RouterBaseMethodExt) GetDriver(c *gin.Context) (driverExt uixt.IXTDriver, err error) {
|
||||
platform := c.Param("platform")
|
||||
deviceObj, exists := c.Get("device")
|
||||
var device uixt.IDevice
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package server_ext
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/httprunner/httprunner/v5/server"
|
||||
)
|
||||
|
||||
@@ -8,15 +9,22 @@ type RouterExt struct {
|
||||
*server.Router
|
||||
}
|
||||
|
||||
type RouterBaseMethodExt struct {
|
||||
server.RouterBaseMethod
|
||||
}
|
||||
|
||||
func NewExtRouter() *RouterExt {
|
||||
router := &RouterExt{
|
||||
Router: server.NewRouter(),
|
||||
Router: &server.Router{
|
||||
Engine: gin.Default(),
|
||||
IRouterBaseMethod: &RouterBaseMethodExt{},
|
||||
},
|
||||
}
|
||||
router.Setup()
|
||||
router.Init()
|
||||
return router
|
||||
}
|
||||
|
||||
func (r *RouterExt) Setup() {
|
||||
func (r *RouterExt) Init() {
|
||||
r.Router.Init()
|
||||
apiV1PlatformSerial := r.Group("/api/v1").Group("/:platform").Group("/:serial")
|
||||
|
||||
|
||||
@@ -11,21 +11,27 @@ import (
|
||||
)
|
||||
|
||||
func NewRouter() *Router {
|
||||
router := &Router{}
|
||||
router := &Router{
|
||||
Engine: gin.Default(),
|
||||
IRouterBaseMethod: &RouterBaseMethod{},
|
||||
}
|
||||
router.Init()
|
||||
return router
|
||||
}
|
||||
|
||||
type Router struct {
|
||||
*gin.Engine
|
||||
IRouterBaseMethod
|
||||
}
|
||||
|
||||
type IRouter interface {
|
||||
type RouterBaseMethod struct {
|
||||
}
|
||||
|
||||
type IRouterBaseMethod interface {
|
||||
GetDriver(c *gin.Context) (driver uixt.IXTDriver, err error)
|
||||
}
|
||||
|
||||
func (r *Router) Init() {
|
||||
r.Engine = gin.Default()
|
||||
r.Engine.Use(teardown())
|
||||
r.Engine.GET("/ping", r.pingHandler)
|
||||
r.Engine.GET("/", r.pingHandler)
|
||||
|
||||
Reference in New Issue
Block a user