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

Add run dir script

上级 7ce690fe
#!/usr/bin/env php
<?php
/**
title=extract content from webpage
timeout=0
cid=2
pid=1
1. Load web page from url http://xxx
2. Retrieve img element zt-logo.png in html
3. Check img exist >> `.*zt-logo.png`
1. Load web page from url http://xxx
2. Retrieve img element zt-logo.png in html
3. Check img exist >> `.*zt-logo.png`
1. Load web page from url http://xxx
2. Retrieve img element zt-logo.png in html
3. Check img exist >> `.*zt-logo.png`
......
#!/usr/bin/env php
<?php
/**
title=check string matches pattern
cid=1
pid=1
1. exactly match >> ~c:!=2~
2. exactly match >> ~c:!=2~
3. exactly match >> ~c:!=2~
*/
print("2\n");
\ No newline at end of file
......@@ -122,6 +122,119 @@ func RunScript(t provider.T) {
t.FailNow()
}
}
func RunScriptByRightClick(t provider.T) {
t.ID("5479")
t.AddParentSuite("执行脚本")
pw, err := playwright.Run()
if err != nil {
t.Error(err)
t.FailNow()
}
headless := true
var slowMo float64 = 100
runBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
if err != nil {
t.Errorf("Fail to launch the web runBrowser: %v", err)
t.FailNow()
}
page, err := runBrowser.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(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
if err != nil {
t.Errorf("Click script fail: %v", err)
t.FailNow()
}
err = page.Click(".tree-context-menu>>text=执行")
if err != nil {
t.Errorf("Click run fail: %v", err)
t.FailNow()
}
_, err = page.WaitForSelector("#log-list>>.msg-span>>:has-text('执行1个用例,耗时')")
if err != nil {
t.Errorf("Wait exec result fail: %v", err)
t.FailNow()
}
element, err := page.QuerySelector("#log-list>>.msg-span>>:has-text('执行1个用例,耗时')")
innerText, err := element.InnerText()
if err != nil {
t.Errorf("Find result fail: %v", err)
t.FailNow()
}
if !strings.Contains(innerText, "1(100.0%) 失败") {
t.Errorf("Exec 1_string_match.php fail: %v", err)
t.FailNow()
}
resultTitleElement, err := page.QuerySelector("#rightPane .result-list-item .list-item-title")
if err != nil {
t.Errorf("Find log title in logPane fail: %v", err)
t.FailNow()
}
resultTitle, err := resultTitleElement.InnerText()
if err != nil || resultTitle != "1_string_match.php" {
t.Errorf("Find result in rightPane fail: %v", err)
t.FailNow()
}
timeElement, err := page.QuerySelector("#log-list .item .time")
if err != nil {
t.Errorf("Find log time in logPane fail: %v", err)
t.FailNow()
}
logTime, err := timeElement.InnerText()
if err != nil {
t.Errorf("Find log time in logPane fail: %v", err)
t.FailNow()
}
resultTimeElement, err := page.QuerySelector("#rightPane .result-list-item .list-item-trailing-text")
if err != nil {
t.Errorf("Find log time in logPane fail: %v", err)
t.FailNow()
}
resultTime, err := resultTimeElement.InnerText()
if err != nil || logTime[:5] != resultTime {
t.Errorf("Find result in rightPane fail: %v", err)
t.FailNow()
}
if err = runBrowser.Close(); err != nil {
t.Errorf("The runBrowser 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 RunNoInterpreterScript(t provider.T) {
t.ID("5501")
t.AddParentSuite("执行脚本")
......@@ -666,12 +779,12 @@ func RunWorkspace(t provider.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()
......@@ -752,8 +865,116 @@ func RunWorkspace(t provider.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 {
t.Errorf("The playwright cannot be stopped: %v", err)
t.FailNow()
}
}
func RunDir(t provider.T) {
t.ID("5480")
t.AddParentSuite("右键执行脚本")
pw, err := playwright.Run()
if err != nil {
t.Error(err)
t.FailNow()
}
headless := true
var slowMo float64 = 100
runBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
if err != nil {
t.Errorf("Fail to launch the web runBrowser: %v", err)
t.FailNow()
}
page, err := runBrowser.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 workspace fail: %v", err)
t.FailNow()
}
err = page.Click(".tree-node-children>>.tree-node>>:has-text('testdir')", playwright.PageClickOptions{Button: playwright.MouseButtonRight})
if err != nil {
t.Errorf("Right click dir fail: %v", err)
t.FailNow()
}
err = page.Click(".tree-context-menu>>text=执行")
if err != nil {
t.Errorf("Click copy fail: %v", err)
t.FailNow()
}
_, err = page.WaitForSelector("#log-list>>.msg-span>>:has-text('执行1个用例,耗时')")
if err != nil {
t.Errorf("Wait exec result fail: %v", err)
t.FailNow()
}
element, err := page.QuerySelector("#log-list>>.msg-span>>:has-text('执行1个用例,耗时')")
innerText, err := element.InnerText()
if err != nil {
t.Errorf("Find result fail: %v", err)
t.FailNow()
}
if !strings.Contains(innerText, "1(100.0%) 失败") {
t.Errorf("Exec 1_string_match.php fail: %v", err)
t.FailNow()
}
resultTitleElement, err := page.QuerySelector("#rightPane .result-list-item .list-item-title")
if err != nil {
t.Errorf("Find log title in logPane fail: %v", err)
t.FailNow()
}
resultTitle, err := resultTitleElement.InnerText()
if err != nil || resultTitle != "1_string_match.php" {
t.Errorf("Find result in rightPane fail: %v", err)
t.FailNow()
}
timeElement, err := page.QuerySelector("#log-list .item .time")
if err != nil {
t.Errorf("Find log time in logPane fail: %v", err)
t.FailNow()
}
logTime, err := timeElement.InnerText()
if err != nil {
t.Errorf("Find log time in logPane fail: %v", err)
t.FailNow()
}
resultTimeElement, err := page.QuerySelector("#rightPane .result-list-item .list-item-trailing-text")
if err != nil {
t.Errorf("Find log time in logPane fail: %v", err)
t.FailNow()
}
resultTime, err := resultTimeElement.InnerText()
if err != nil || logTime[:5] != resultTime {
t.Errorf("Find result in rightPane fail: %v", err)
t.FailNow()
}
if err = runBrowser.Close(); err != nil {
t.Errorf("The runBrowser cannot be closed: %v", err)
t.FailNow()
}
if err = pw.Stop(); err != nil {
......@@ -764,9 +985,11 @@ func RunWorkspace(t provider.T) {
func TestUiRun(t *testing.T) {
runner.Run(t, "客户端-执行单个脚本", RunScript)
runner.Run(t, "客户端-右键执行单个脚本", RunScriptByRightClick)
runner.Run(t, "客户端-忽略执行未设置解析器的脚本", RunNoInterpreterScript)
runner.Run(t, "客户端-执行选中的脚本文件和文件夹", RunSelectedScripts)
runner.Run(t, "客户端-执行打开的脚本文件", RunOpenedAndLast)
runner.Run(t, "客户端-执行所有的脚本文件", RunAll)
runner.Run(t, "客户端-右键执行工作目录", RunWorkspace)
runner.Run(t, "客户端-右键执行文件夹", RunDir)
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册