更新依赖
This commit is contained in:
@@ -12,7 +12,6 @@ import (
|
||||
"go.uber.org/zap"
|
||||
"gopkg.d7z.net/gitea-pages/pkg"
|
||||
"gopkg.d7z.net/middleware/kv"
|
||||
"gopkg.d7z.net/middleware/tools"
|
||||
)
|
||||
|
||||
type TestServer struct {
|
||||
@@ -43,7 +42,7 @@ func NewTestServer(domain string) *TestServer {
|
||||
domain,
|
||||
"gh-pages",
|
||||
memoryKV,
|
||||
tools.NewPrefixKV(memoryKV, "cache"),
|
||||
memoryKV.Child("cache"),
|
||||
0,
|
||||
func(w http.ResponseWriter, r *http.Request, err error) {
|
||||
if errors.Is(err, os.ErrNotExist) {
|
||||
|
||||
@@ -56,3 +56,55 @@ routes:
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "POST /api/v1/fetch", string(data))
|
||||
}
|
||||
|
||||
func Benchmark_JS_Request(b *testing.B) {
|
||||
// 初始化服务器(在基准测试外执行,避免计入时间)
|
||||
server := core.NewDefaultTestServer()
|
||||
defer server.Close()
|
||||
server.AddFile("org1/repo1/gh-pages/index.html", "hello world")
|
||||
server.AddFile("org1/repo1/gh-pages/index.js", `response.write(request.method+' /'+request.path)`)
|
||||
server.AddFile("org1/repo1/gh-pages/.pages.yaml", `
|
||||
routes:
|
||||
- path: "api/v1/**"
|
||||
qjs:
|
||||
exec: "index.js"
|
||||
`)
|
||||
|
||||
b.ResetTimer() // 重置计时器,只测量下面的操作
|
||||
|
||||
b.Run("OpenFile_root", func(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, _, err := server.OpenFile("https://org1.example.com/repo1/")
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
if string(data) != "hello world" {
|
||||
b.Fatalf("expected 'hello world', got '%s'", string(data))
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
b.Run("OpenFile_api", func(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, _, err := server.OpenFile("https://org1.example.com/repo1/api/v1/fetch")
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
if string(data) != "GET /api/v1/fetch" {
|
||||
b.Fatalf("expected 'GET /api/v1/fetch', got '%s'", string(data))
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
b.Run("OpenRequest_post", func(b *testing.B) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
data, _, err := server.OpenRequest(http.MethodPost, "https://org1.example.com/repo1/api/v1/fetch", nil)
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
if string(data) != "POST /api/v1/fetch" {
|
||||
b.Fatalf("expected 'POST /api/v1/fetch', got '%s'", string(data))
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user