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

Add bug test script

上级 079d6ab5
......@@ -21,6 +21,7 @@ import (
)
var (
cbNewline = "/"
continueRe = regexp.MustCompile("Which case do you want to report bug for|请输入您想提交缺陷的用例ID")
successCbRe = regexp.MustCompile("Success to report bug for case \\d+|成功为用例\\d+提交缺陷")
)
......@@ -48,7 +49,7 @@ func testCb() string {
return fmt.Sprintf("expect %s, actual %s", continueRe, err.Error())
}
if err = child.Send("1" + newline); err != nil {
if err = child.Send("1" + cbNewline); err != nil {
return err.Error()
}
......@@ -61,7 +62,7 @@ func testCb() string {
func TestCb(t *testing.T) {
if runtime.GOOS == "windows" {
newline = "\r\n"
cbNewline = "\r\n"
}
suite.Run(t, new(CbSuit))
}
......@@ -206,14 +206,13 @@ func (s *RunSuit) TestRunScenes() {
print("%s\n");`
path := "./demo/test"
path := "./demo/test_scene.php"
if runtime.GOOS == "windows" {
path = `.\demo\test_scene.php`
}
cmd := `ztf run ` + path
for expectVal, actualVal := range sceneMap {
file, err := os.OpenFile(path, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0666)
defer file.Close()
if err != nil {
s.Suite.T().Errorf("open file fail, err:%s", err)
return
......@@ -222,7 +221,9 @@ func (s *RunSuit) TestRunScenes() {
write.WriteString(fmt.Sprintf(template, expectVal, actualVal))
write.Flush()
assert.Equal(s.Suite.T(), "Success", testRun(cmd, regexp.MustCompile(`Run 1 scripts in \d+ sec, 1\(100\.0%\) Pass, 0\(0\.0%\) Fail, 0\(0\.0%\) Skip|执行1个用例,耗时\d+秒。1\(100\.0%\) 通过,0\(0\.0%\) 失败,0\(0\.0%\) 忽略`)))
file.Close()
}
os.Remove(path)
}
func TestRun(t *testing.T) {
......
package main
import (
"testing"
playwright "github.com/playwright-community/playwright-go"
)
var bugBrowser playwright.Browser
func ScriptBug(t *testing.T) {
pw, err := playwright.Run()
if err != nil {
t.Error(err)
t.FailNow()
}
headless := true
var slowMo float64 = 100
bugBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
if err != nil {
t.Errorf("Fail to launch the web bugBrowser: %v", err)
t.FailNow()
}
page, err := bugBrowser.NewPage()
if err != nil {
t.Errorf("Create the new page fail: %v", err)
t.FailNow()
}
if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{
WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
t.Errorf("The specific URL is missing: %v", err)
t.FailNow()
}
_, err = page.WaitForSelector(".tree-node")
if err != nil {
t.Errorf("Wait tree-node fail: %v", err)
t.FailNow()
}
locator, err := page.Locator(".tree-node", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
c, err := locator.Count()
if err != nil || c == 0 {
t.Errorf("Find workspace fail: %v", err)
t.FailNow()
}
err = locator.Click()
if err != nil {
t.Errorf("Click node fail: %v", err)
t.FailNow()
}
scriptLocator, err := locator.Locator("text=1_string_match.php")
if err != nil {
t.Errorf("Find 1_string_match.php fail: %v", err)
t.FailNow()
}
err = scriptLocator.Click()
if err != nil {
t.Errorf("Click script fail: %v", err)
t.FailNow()
}
page.WaitForTimeout(200)
err = page.Click(".statistic>>span>>nth=3")
if err != nil {
t.Errorf("Click bug btn fail: %v", err)
t.FailNow()
}
elements, _ := page.QuerySelectorAll("#bugsModal>>tr")
bugTimesInt := len(elements)
if bugTimesInt < 2 {
t.Error("statistic error")
t.FailNow()
}
if err = bugBrowser.Close(); err != nil {
t.Errorf("The bugBrowser cannot be closed: %v", err)
t.FailNow()
}
if err = pw.Stop(); err != nil {
t.Errorf("The playwright cannot be stopped: %v", err)
t.FailNow()
}
}
func ScriptsBug(t *testing.T) {
pw, err := playwright.Run()
if err != nil {
t.Error(err)
t.FailNow()
}
headless := true
var slowMo float64 = 100
bugBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
if err != nil {
t.Errorf("Fail to launch the web bugBrowser: %v", err)
t.FailNow()
}
page, err := bugBrowser.NewPage()
if err != nil {
t.Errorf("Create the new page fail: %v", err)
t.FailNow()
}
if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{
WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
t.Errorf("The specific URL is missing: %v", err)
t.FailNow()
}
_, err = page.WaitForSelector(".tree-node")
if err != nil {
t.Errorf("Wait tree-node fail: %v", err)
t.FailNow()
}
locator, err := page.Locator(".tree-node", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
c, err := locator.Count()
if err != nil || c == 0 {
t.Errorf("Find workspace fail: %v", err)
t.FailNow()
}
err = locator.Click()
if err != nil {
t.Errorf("Click node fail: %v", err)
t.FailNow()
}
err = page.Click(`[title="批量选择"]`)
if err != nil {
t.Errorf("The Click select btn fail: %v", err)
t.FailNow()
}
scriptLocator, err := locator.Locator(".tree-node-item:has-text('1_string_match.php')")
if err != nil {
t.Errorf("Find 1_string_match.php fail: %v", err)
t.FailNow()
}
scriptLocator, err = scriptLocator.Locator(".tree-node-check")
if err != nil {
t.Errorf("Find 1_string_match.php checkbox fail: %v", err)
t.FailNow()
}
err = scriptLocator.Click()
if err != nil {
t.Errorf("Click 1_string_match.php checkbox fail: %v", err)
t.FailNow()
}
scriptLocator, err = locator.Locator(".tree-node-item:has-text('2_webpage_extract.php')")
if err != nil {
t.Errorf("Find 2_webpage_extract.php fail: %v", err)
t.FailNow()
}
scriptLocator, err = scriptLocator.Locator(".tree-node-check")
if err != nil {
t.Errorf("Find 2_webpage_extract.php checkbox fail: %v", err)
t.FailNow()
}
err = scriptLocator.Click()
if err != nil {
t.Errorf("Click 2_webpage_extract.php checkbox fail: %v", err)
t.FailNow()
}
err = page.Click(`[title="禅道BUG"]`)
if err != nil {
t.Errorf("The Click bug btn fail: %v", err)
t.FailNow()
}
elements, _ := page.QuerySelectorAll("#bugsModal>>tr")
bugTimesInt := len(elements)
if bugTimesInt < 2 {
t.Error("statistic error")
t.FailNow()
}
if err = bugBrowser.Close(); err != nil {
t.Errorf("The bugBrowser cannot be closed: %v", err)
t.FailNow()
}
if err = pw.Stop(); err != nil {
t.Errorf("The playwright cannot be stopped: %v", err)
t.FailNow()
}
}
func TestUiBug(t *testing.T) {
t.Run("ScriptsBug", ScriptBug)
t.Run("ScriptsBug", ScriptsBug)
}
......@@ -18,12 +18,12 @@ func RunScript(t *testing.T) {
}
headless := true
var slowMo float64 = 100
workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
runBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
if err != nil {
t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
t.Errorf("Fail to launch the web runBrowser: %v", err)
t.FailNow()
}
page, err := workspaceBrowser.NewPage()
page, err := runBrowser.NewPage()
if err != nil {
t.Errorf("Create the new page fail: %v", err)
t.FailNow()
......@@ -110,8 +110,8 @@ func RunScript(t *testing.T) {
t.FailNow()
}
if err = workspaceBrowser.Close(); err != nil {
t.Errorf("The workspaceBrowser cannot be closed: %v", err)
if err = runBrowser.Close(); err != nil {
t.Errorf("The runBrowser cannot be closed: %v", err)
t.FailNow()
}
if err = pw.Stop(); err != nil {
......@@ -128,12 +128,12 @@ func RunSelectedScripts(t *testing.T) {
}
headless := true
var slowMo float64 = 100
workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
runBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
if err != nil {
t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
t.Errorf("Fail to launch the web runBrowser: %v", err)
t.FailNow()
}
page, err := workspaceBrowser.NewPage()
page, err := runBrowser.NewPage()
if err != nil {
t.Errorf("Create the new page fail: %v", err)
t.FailNow()
......@@ -244,8 +244,8 @@ func RunSelectedScripts(t *testing.T) {
t.Errorf("Find result in rightPane fail: %v", err)
t.FailNow()
}
if err = workspaceBrowser.Close(); err != nil {
t.Errorf("The workspaceBrowser cannot be closed: %v", err)
if err = runBrowser.Close(); err != nil {
t.Errorf("The runBrowser cannot be closed: %v", err)
t.FailNow()
}
if err = pw.Stop(); err != nil {
......@@ -262,12 +262,12 @@ func RunOpenedAndLast(t *testing.T) {
}
headless := true
var slowMo float64 = 100
workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
runBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
if err != nil {
t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
t.Errorf("Fail to launch the web runBrowser: %v", err)
t.FailNow()
}
page, err := workspaceBrowser.NewPage()
page, err := runBrowser.NewPage()
if err != nil {
t.Errorf("Create the new page fail: %v", err)
t.FailNow()
......@@ -439,8 +439,8 @@ func RunOpenedAndLast(t *testing.T) {
t.Errorf("Find result in rightPane fail: %v", err)
t.FailNow()
}
if err = workspaceBrowser.Close(); err != nil {
t.Errorf("The workspaceBrowser cannot be closed: %v", err)
if err = runBrowser.Close(); err != nil {
t.Errorf("The runBrowser cannot be closed: %v", err)
t.FailNow()
}
if err = pw.Stop(); err != nil {
......@@ -457,12 +457,12 @@ func RunAll(t *testing.T) {
}
headless := true
var slowMo float64 = 100
workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
runBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
if err != nil {
t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
t.Errorf("Fail to launch the web runBrowser: %v", err)
t.FailNow()
}
page, err := workspaceBrowser.NewPage()
page, err := runBrowser.NewPage()
if err != nil {
t.Errorf("Create the new page fail: %v", err)
t.FailNow()
......@@ -567,8 +567,8 @@ func RunAll(t *testing.T) {
if err != nil || logTime[:5] != resultTime {
t.Errorf("Find result in rightPane fail: %v", err)
}
if err = workspaceBrowser.Close(); err != nil {
t.Errorf("The workspaceBrowser cannot be closed: %v", err)
if err = runBrowser.Close(); err != nil {
t.Errorf("The runBrowser cannot be closed: %v", err)
t.FailNow()
}
if err = pw.Stop(); err != nil {
......@@ -585,12 +585,12 @@ func RunReExecFailCase(t *testing.T) {
}
headless := true
var slowMo float64 = 100
workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
runBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
if err != nil {
t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
t.Errorf("Fail to launch the web runBrowser: %v", err)
t.FailNow()
}
page, err := workspaceBrowser.NewPage()
page, err := runBrowser.NewPage()
if err != nil {
t.Errorf("Create the new page fail: %v", err)
t.FailNow()
......@@ -688,8 +688,8 @@ func RunReExecFailCase(t *testing.T) {
t.Errorf("Find result in rightPane fail: %v", err)
t.FailNow()
}
if err = workspaceBrowser.Close(); err != nil {
t.Errorf("The workspaceBrowser cannot be closed: %v", err)
if err = runBrowser.Close(); err != nil {
t.Errorf("The runBrowser cannot be closed: %v", err)
t.FailNow()
}
if err = pw.Stop(); err != nil {
......@@ -706,12 +706,12 @@ func RunReExecAllCase(t *testing.T) {
}
headless := true
var slowMo float64 = 100
workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
runBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
if err != nil {
t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
t.Errorf("Fail to launch the web runBrowser: %v", err)
t.FailNow()
}
page, err := workspaceBrowser.NewPage()
page, err := runBrowser.NewPage()
if err != nil {
t.Errorf("Create the new page fail: %v", err)
t.FailNow()
......@@ -809,8 +809,8 @@ func RunReExecAllCase(t *testing.T) {
t.Errorf("Find result in rightPane fail: %v", err)
t.FailNow()
}
if err = workspaceBrowser.Close(); err != nil {
t.Errorf("The workspaceBrowser cannot be closed: %v", err)
if err = runBrowser.Close(); err != nil {
t.Errorf("The runBrowser cannot be closed: %v", err)
t.FailNow()
}
if err = pw.Stop(); err != nil {
......@@ -827,12 +827,12 @@ func RunFailStatistic(t *testing.T) {
}
headless := true
var slowMo float64 = 100
workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
runBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
if err != nil {
t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
t.Errorf("Fail to launch the web runBrowser: %v", err)
t.FailNow()
}
page, err := workspaceBrowser.NewPage()
page, err := runBrowser.NewPage()
if err != nil {
t.Errorf("Create the new page fail: %v", err)
t.FailNow()
......@@ -893,8 +893,8 @@ func RunFailStatistic(t *testing.T) {
t.Error("statistic error")
t.FailNow()
}
if err = workspaceBrowser.Close(); err != nil {
t.Errorf("The workspaceBrowser cannot be closed: %v", err)
if err = runBrowser.Close(); err != nil {
t.Errorf("The runBrowser cannot be closed: %v", err)
t.FailNow()
}
if err = pw.Stop(); err != nil {
......@@ -911,12 +911,12 @@ func RunSuccessStatistic(t *testing.T) {
}
headless := true
var slowMo float64 = 100
workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
runBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
if err != nil {
t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
t.Errorf("Fail to launch the web runBrowser: %v", err)
t.FailNow()
}
page, err := workspaceBrowser.NewPage()
page, err := runBrowser.NewPage()
if err != nil {
t.Errorf("Create the new page fail: %v", err)
t.FailNow()
......@@ -977,8 +977,8 @@ func RunSuccessStatistic(t *testing.T) {
t.Error("statistic error")
t.FailNow()
}
if err = workspaceBrowser.Close(); err != nil {
t.Errorf("The workspaceBrowser cannot be closed: %v", err)
if err = runBrowser.Close(); err != nil {
t.Errorf("The runBrowser cannot be closed: %v", err)
t.FailNow()
}
if err = pw.Stop(); err != nil {
......@@ -995,12 +995,12 @@ func RunBugStatistic(t *testing.T) {
}
headless := true
var slowMo float64 = 100
workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
runBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
if err != nil {
t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
t.Errorf("Fail to launch the web runBrowser: %v", err)
t.FailNow()
}
page, err := workspaceBrowser.NewPage()
page, err := runBrowser.NewPage()
if err != nil {
t.Errorf("Create the new page fail: %v", err)
t.FailNow()
......@@ -1052,8 +1052,8 @@ func RunBugStatistic(t *testing.T) {
t.Error("statistic error")
t.FailNow()
}
if err = workspaceBrowser.Close(); err != nil {
t.Errorf("The workspaceBrowser cannot be closed: %v", err)
if err = runBrowser.Close(); err != nil {
t.Errorf("The runBrowser cannot be closed: %v", err)
t.FailNow()
}
if err = pw.Stop(); err != nil {
......
......@@ -174,8 +174,9 @@ func SyncFromZentao(t *testing.T) {
locator, err := page.Locator(".tree-node", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
c, err := locator.Count()
if err != nil || c == 0 {
t.Errorf("Find workspace fail: %v", err)
t.FailNow()
CreateWorkspace(t)
SyncFromZentao(t)
return
}
locator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
if err != nil {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册