12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package test
- import (
- "database/sql"
- "log"
- "os"
- "testing"
- "time"
- )
- func setupDB() (*sql.DB, error) {
- db, err := sql.Open("xugusql", "IP=10.28.20.101;"+
- "DB=GODB;User=SYSDBA;PWD=SYSDBA;"+
- "Port= 5190;AUTO_COMMIT=on;CHAR_SET=UTF8")
- if err != nil {
- return nil, err
- }
- return db, nil
- }
- // TestStability 测试数据库的稳定性
- func TestStability(t *testing.T) {
- db, err := setupDB()
- if err != nil {
- t.Fatalf("Failed to connect to database: %v", err)
- }
- defer db.Close()
- duration := 1 * time.Hour // 测试运行时间
- endTime := time.Now().Add(duration)
- // 创建日志文件
- logFile, err := os.OpenFile("stability_test.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
- if err != nil {
- log.Fatalf("Failed to open log file: %v", err)
- }
- defer logFile.Close()
- // 设置日志输出到文件
- log.SetOutput(logFile)
- for time.Now().Before(endTime) {
- // 执行插入操作
- stmt, err := db.Prepare("INSERT INTO users(name) VALUES(?)")
- if err != nil {
- t.Fatalf("Failed to prepare insert statement: %v", err)
- log.Fatalf("Failed to prepare insert statement: %v", err)
- }
- _, err = stmt.Exec("TestUser")
- stmt.Close()
- if err != nil {
- t.Fatalf("Failed to execute insert statement: %v", err)
- log.Fatalf("Failed to execute insert statement: %v", err)
- }
- // 执行查询操作
- stmt, err = db.Prepare("SELECT name FROM users WHERE name = ?")
- if err != nil {
- t.Fatalf("Failed to prepare select statement: %v", err)
- log.Fatalf("Failed to prepare select statement: %v", err)
- }
- var name string
- err = stmt.QueryRow("TestUser").Scan(&name)
- stmt.Close()
- if err != nil {
- t.Fatalf("Failed to query row: %v", err)
- log.Fatalf("Failed to prepare select statement: %v", err)
- }
- if name != "TestUser" {
- t.Errorf("Expected name 'TestUser', but got '%s'", name)
- log.Fatalf("Failed to prepare select statement: %v", err)
- }
- // 执行删除操作
- stmt, err = db.Prepare("DELETE FROM users WHERE name = ?")
- if err != nil {
- t.Fatalf("Failed to prepare delete statement: %v", err)
- log.Fatalf("Failed to prepare select statement: %v", err)
- }
- _, err = stmt.Exec("TestUser")
- stmt.Close()
- if err != nil {
- t.Fatalf("Failed to execute delete statement: %v", err)
- log.Fatalf("Failed to prepare select statement: %v", err)
- }
- }
- }
|