提交 b471aaa2 编写于 作者: aaronchen2k2k's avatar aaronchen2k2k

helper methods for automated testing

上级 be1314e5
package conf
func SetExitOnError(val bool) {
ExitOnError = val
ExitAllOnError = val
}
func GetExitOnError() bool {
return ExitOnError
return ExitAllOnError
}
package conf
var (
ExitOnError = false
ExitAllOnError = false
)
package main
import (
"github.com/easysoft/zentaoatf/test/ui/conf"
plw "github.com/easysoft/zentaoatf/test/ui/helper"
"github.com/ozontech/allure-go/pkg/framework/provider"
"github.com/ozontech/allure-go/pkg/framework/runner"
"testing"
)
func Demo(t provider.T) {
webpage, _ := plw.OpenUrl("https://baidu.com", t)
defer func() { plw.Close(t) }()
webpage.GetLocator("//*[@id=\"kw1\"]", t).Click(t)
}
func TestDemo(t *testing.T) {
conf.ExitAllOnError = true
runner.Run(t, "设置界面语言", Demo)
}
package helper
package plw
import (
"errors"
"fmt"
"github.com/easysoft/zentaoatf/test/ui/utils"
"github.com/ozontech/allure-go/pkg/framework/provider"
playwright "github.com/playwright-community/playwright-go"
)
var (
browser playwright.Browser
pw *playwright.Playwright
page playwright.Page
)
func OpenUrl(url string) (err error) {
pw, err := playwright.Run()
if err != nil {
panic(err)
}
headless := true
func OpenUrl(url string, t provider.T) (ret Webpage, err error) {
pw, err = playwright.Run()
utils.PrintErrOrNot(err, t)
headless := false
var slowMo float64 = 100
runBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
if err != nil {
panic(err)
browser, err = pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
utils.PrintErrOrNot(err, t)
page, err = browser.NewPage()
utils.PrintErrOrNot(err, t)
if _, err = page.Goto(url, playwright.PageGotoOptions{WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
utils.PrintErrOrNot(err, t)
}
page, err = runBrowser.NewPage()
if err != nil {
panic(err)
ret = Webpage{
Page: page,
}
if _, err = page.Goto(url, playwright.PageGotoOptions{WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
return
}
func Close(t provider.T) {
if browser != nil {
if err := browser.Close(); err != nil {
t.Errorf("The resultBrowser cannot be closed: %v", err)
t.FailNow()
}
}
if pw != nil {
if err := pw.Stop(); err != nil {
t.Errorf("The playwright cannot be stopped: %v", err)
t.FailNow()
}
}
return
}
func (p *Webpage) GetLocator(selector string, t provider.T) (ret MyLocator) {
locator, err := p.Page.Locator(selector)
c, err := locator.Count()
if err == nil && c == 0 {
err = errors.New("not found")
}
err = errors.New(fmt.Sprintf("%s: %s", selector, err.Error()))
utils.PrintErrOrNot(err, t)
ret = MyLocator{
Locator: locator,
Selector: selector,
}
return
}
func (p *Webpage) GetLocatorByOptions(selector string, options ...playwright.PageLocatorOptions) (elem MyLocator) {
locator, err := p.Page.Locator(selector, options...)
c, err := locator.Count()
if err != nil || c == 0 {
panic(err)
}
elem = MyLocator{
Locator: locator,
}
return
}
package helper
package plw
import (
"github.com/playwright-community/playwright-go"
......@@ -8,20 +8,7 @@ type Webpage struct {
Page playwright.Page
}
type Element struct {
Locator playwright.Locator
}
func (p *Webpage) GetElement(selector string, options ...playwright.PageLocatorOptions) (elem Element) {
locator, err := p.Page.Locator(selector, options...)
c, err := locator.Count()
if err != nil || c == 0 {
panic(err)
}
elem = Element{
Locator: locator,
}
return
type MyLocator struct {
Selector string
Locator playwright.Locator
}
package helper
package plw
import (
"errors"
"fmt"
"github.com/easysoft/zentaoatf/test/ui/utils"
"github.com/ozontech/allure-go/pkg/framework/provider"
)
func (e *Element) Click() {
err := e.Locator.Click()
func (l MyLocator) Click(t provider.T) (err error) {
err = l.Locator.Click()
utils.PrintErr(err)
err = errors.New(fmt.Sprintf("%s: %s", l.Selector, err.Error()))
utils.PrintErrOrNot(err, t)
return
}
......@@ -8,8 +8,6 @@ import (
playwright "github.com/playwright-community/playwright-go"
)
var bugBrowser playwright.Browser
func ScriptBug(t provider.T) {
pw, err := playwright.Run()
if err != nil {
......
......@@ -1438,4 +1438,5 @@ func TestUiWorkspace(t *testing.T) {
runner.Run(t, "客户端-按模块展示禅道用例脚本", ByModule)
runner.Run(t, "客户端-删除禅道工作目录", DeleteWorkspace)
runner.Run(t, "客户端-创建禅道工作目录", CreateWorkspace)
}
......@@ -2,13 +2,26 @@ package utils
import (
"github.com/easysoft/zentaoatf/test/ui/conf"
"github.com/ozontech/allure-go/pkg/framework/provider"
"log"
)
func PrintErr(err error) {
if err != nil && conf.ExitOnError {
log.Panic(err)
} else {
log.Println(err)
func PrintErrOrNot(err error, t provider.T) {
if err != nil {
if conf.ExitAllOnError {
log.Panicln(err)
} else {
log.Println(err)
}
}
}
func PrintErrMsg(err string, t provider.T) {
if err != "" {
if conf.ExitAllOnError {
log.Panicln(err)
} else {
log.Println(err)
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册