hotgo/server/internal/library/location/location_test.go

73 lines
1.5 KiB
Go

// Package location_test
// @Link https://github.com/bufanyun/hotgo
// @Copyright Copyright (c) 2024 HotGo CLI
// @Author Ms <133814250@qq.com>
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
package location_test
import (
"github.com/gogf/gf/v2/encoding/gjson"
"github.com/gogf/gf/v2/os/gctx"
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/test/gtest"
"hotgo/internal/library/location"
"sync"
"testing"
)
var ip = "120.12.151.65"
func Test_GetLocation(t *testing.T) {
ctx := gctx.New()
data, err := location.GetLocation(ctx, ip)
if err != nil {
t.Error(err)
return
}
t.Logf("data:%v", gjson.New(data).String())
}
func Test_ParallelGetLocation(t *testing.T) {
ctx := gctx.New()
start := gtime.Now()
t.Log("start")
for i := 0; i < 10; i++ {
data, err := location.GetLocation(ctx, ip)
if err != nil {
t.Error(err)
return
}
t.Logf("index:%v, data:%v", i, gjson.New(data).String())
}
t.Logf("总耗时:%vs", gtime.Now().Sub(start).Seconds())
}
func Test_ConcurrentGetLocation(t *testing.T) {
gtest.C(t, func(t *gtest.T) {
ctx := gctx.New()
start := gtime.Now()
var wg sync.WaitGroup
t.Log("start")
for i := 0; i < 10; i++ {
wg.Add(1)
index := i
go func() {
defer wg.Done()
data, err := location.GetLocation(ctx, ip)
if err != nil {
t.Error(err)
return
}
t.Logf("index:%v, data:%v", index, gjson.New(data).String())
}()
}
wg.Wait()
t.Logf("总耗时:%vs", gtime.Now().Sub(start).Seconds())
})
}