提交 b8e1b6fe 编写于 作者: 雨爱无痕

Add init zentao data

上级 f0471f82
package commonTest
import (
"errors"
"flag"
"fmt"
"os"
"os/exec"
"runtime"
......@@ -13,44 +13,71 @@ import (
)
var version = flag.String("version", "", "")
var isRuning = false
func Run(version string) (err error) {
versionNumber := strings.ReplaceAll(version, ".", "")
apath, _ := os.Getwd()
fmt.Println(apath)
codeDir := apath + "/docker/www"
if runtime.GOOS == "windows" {
codeDir = apath + `\docker\www`
}
_, err = os.Stat(codeDir)
if os.IsNotExist(err) {
err = os.MkdirAll(codeDir, os.ModePerm)
if err != nil {
return
}
if os.IsExist(err) {
os.RemoveAll(codeDir)
}
//docker run --name zentao -p 8081:80 --network=zentaonet -v D:\docker\www\zentaopms:/www/zentaopms -v D:\docker\mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d easysoft/zentao:12.3.3
cmd := exec.Command("docker", "run", "--name", "zentao"+versionNumber, "-p", "8081:80", "-v", codeDir+":/www/zentaopms", "-e", "MYSQL_ROOT_PASSWORD=123456", "-d", "easysoft/zentao:"+version)
fmt.Println(cmd.String())
output, err := cmd.CombinedOutput()
if err != nil {
fmt.Println(err)
return
}
if strings.Contains(string(output), "exit") {
return errors.New("Run docker fail")
}
fmt.Println(string(output))
return err
}
func IsExistContainer(name string) bool {
cmd := exec.Command("docker", "ps", "-a", "--format", "'{{.Names}}'")
output, err := cmd.CombinedOutput()
if err != nil {
return false
}
return strings.Contains(string(output), name)
}
func IsRuning(name string) bool {
cmd := exec.Command("docker", "ps", "--format", "'{{.Names}}'")
output, err := cmd.CombinedOutput()
if err != nil {
return false
}
return strings.Contains(string(output), name)
}
func Start(name string) bool {
cmd := exec.Command("docker", "start", name)
output, err := cmd.CombinedOutput()
if err != nil {
return false
}
return strings.Contains(string(output), name)
}
func InitZentao() {
if isRuning {
return
versionNumber := strings.ReplaceAll(*version, ".", "")
containerName := "zentao" + versionNumber
isExist := IsExistContainer(containerName)
if isExist {
if !IsRuning(containerName) {
Start(containerName)
time.Sleep(time.Second * 30)
}
} else {
Run(*version)
time.Sleep(time.Second * 120)
}
flag.Parse()
isRuning = true
fmt.Println(*version)
Run(*version)
time.Sleep(time.Minute)
uiTest.InitZentaoData()
}
package uiTest
import (
"strings"
playwright "github.com/playwright-community/playwright-go"
)
func login() {
var page playwright.Page
func Login() (err error) {
if _, err = page.Goto("http://127.0.0.1:8081/", playwright.PageGotoOptions{
WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
return
}
err = page.Fill(`input[name="account"]`, "admin")
if err != nil {
return
}
err = page.Fill(`input[name="password"]`, "123456.")
if err != nil {
return
}
err = page.Click(`button:has-text("登录")`)
if err != nil {
return
}
_, err = page.WaitForSelector("#login", playwright.PageWaitForSelectorOptions{State: playwright.WaitForSelectorStateDetached})
if err != nil {
return
}
title, err := page.Title()
if err != nil {
return
}
if title == "流程 - 禅道" {
err = page.Click(`button:has-text("保存")`)
if err != nil {
return
}
}
return
}
func CreateModule() (err error) {
if _, err = page.Goto("http://127.0.0.1:8081/index.php?m=tree&f=browse&productID=1&view=case", playwright.PageGotoOptions{
WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
return
}
err = page.Fill(`input[name="modules\[\]"]>>nth=0`, "module1")
if err != nil {
return
}
err = page.Fill(`input[name="modules\[\]"]>>nth=1`, "module2")
if err != nil {
return
}
err = page.Click(`#submit`)
if err != nil {
return
}
_, err = page.WaitForSelector("#modulesTree>>:has-text('module')")
if err != nil {
return
}
return
}
func CreateSuite() (err error) {
if _, err = page.Goto("http://127.0.0.1:8081/index.php?m=testsuite&f=create&product=1", playwright.PageGotoOptions{
WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
return
}
err = page.Fill(`#name`, "test_suite")
if err != nil {
return
}
err = page.Click(`#submit`)
if err != nil {
return
}
_, err = page.WaitForSelector("#submit", playwright.PageWaitForSelectorOptions{State: playwright.WaitForSelectorStateDetached})
if err != nil {
return
}
return
}
func goToLastUnitTestResult() {
......@@ -17,24 +95,103 @@ func checkUnitTestResult() {
}
func InitZentaoData() (err error) {
pw, err := playwright.Run()
if _, err = page.Goto("http://127.0.0.1:8081/", playwright.PageGotoOptions{
WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
return
}
title, err := page.Title()
if err != nil {
return
}
headless := true
var slowMo float64 = 100
runBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
if strings.Contains(title, "欢迎使用禅道") {
err = page.Click("text=开始安装")
if err != nil {
return
}
err = page.Click("text=下一步")
if err != nil {
return
}
err = page.Click("text=下一步")
if err != nil {
return
}
err = page.Fill(`input[name="dbPassword"]`, "123456")
if err != nil {
return
}
err = page.Click(`input[name="clearDB\[\]"]`)
if err != nil {
return
}
err = page.Click("text=保存")
if err != nil {
return
}
err = page.Click("text=下一步")
if err != nil {
return
}
err = page.Fill(`input[name="company"]`, "test")
if err != nil {
return
}
err = page.Fill(`input[name="account"]`, "admin")
if err != nil {
return
}
err = page.Fill(`input[name="password"]`, "123456.")
if err != nil {
return
}
err = page.Click(`input[name="importDemoData\[\]"]`)
if err != nil {
return
}
err = page.Click("text=保存")
if err != nil {
return
}
_, err = page.WaitForSelector("text=保存", playwright.PageWaitForSelectorOptions{State: playwright.WaitForSelectorStateDetached})
if err != nil {
return
}
err = Login()
if err != nil {
return
}
err = CreateModule()
if err != nil {
return
}
err = CreateSuite()
if err != nil {
return
}
}
return
}
func init() {
pw, err := playwright.Run()
if err != nil {
return
}
page, err := runBrowser.NewPage()
runBrowser, err := pw.Chromium.Launch()
if err != nil {
return
}
if _, err = page.Goto("http://127.0.0.1:8081/", playwright.PageGotoOptions{
WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
defer func() {
// if err = runBrowser.Close(); err != nil {
// return
// }
// if err = pw.Stop(); err != nil {
// return
// }
}()
page, err = runBrowser.NewPage()
if err != nil {
return
}
page.WaitForTimeout(10000000)
return
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册