当前位置: 首页 > news >正文

云商城的网站建设凡客建站

云商城的网站建设,凡客建站,做微商哪个网站有客源,怎么做网页设计视频1.为什么使用go进行UI自动化测试? 速度:Go速度很快,这在运行包含数百个UI测试的测试套件时是一个巨大的优势 并发性:可以利用Go的内置并发性(goroutines)来并行化测试执行 简单:Go的简约语法允许您编写可读且可维护…

1.为什么使用go进行UI自动化测试?

速度:Go速度很快,这在运行包含数百个UI测试的测试套件时是一个巨大的优势

并发性:可以利用Go的内置并发性(goroutines)来并行化测试执行

简单:Go的简约语法允许您编写可读且可维护的测试脚本

ChromeDP:一个无头Chrome/Chromium库,允许直接从Go控制浏览器

2.什么是chromedp?

ChromeDP 是一个 Go 库,允许开发者通过 Chrome DevTools 协议控制 Chrome/Chromium。借助 ChromeDP,您可以与网页交互、模拟用户输入、浏览浏览器以及提取内容进行验证。它既可以在无头模式(没有浏览器UI)下工作,也可以在有头模式(有可见浏览器)下工作。

3.设置环境

安装go

brew install go

安装ChromeDP

go get -u github.com/chromedp/chromedp

4.编写代码

示例测试

打开GoLand,新建main.go文件

main.go-核心测试

这段代码将会打开Chrome,导航到Google搜索页,搜索"Golang",并验证Golang是否出现在搜索结果中

package mainimport ("context""fmt""github.com/chromedp/chromedp""github.com/chromedp/chromedp/kb""log""strings""time"
)func main() {opts := chromedp.DefaultExecAllocatorOptions[:]opts = append(opts,// Disable headless modechromedp.Flag("headless", false),// Enable GPU (optional)chromedp.Flag("disable-gpu", false),// Start with a maximized windowchromedp.Flag("start-maximized", true),)allocCtx, cancel := chromedp.NewExecAllocator(context.Background(), opts...)defer cancel()ctx, cancel := chromedp.NewContext(allocCtx)defer cancel()ctx, cancel = context.WithTimeout(ctx, 15*time.Second)defer cancel()var result stringerr := chromedp.Run(ctx,chromedp.Navigate("https://www.google.com"),chromedp.WaitVisible(`//textarea[@name="q"]`),chromedp.SendKeys(`//textarea[@name="q"]`, "Golang"),chromedp.SendKeys(`//textarea[@name="q"]`, kb.Enter),chromedp.WaitVisible(`#search`),chromedp.Text(`#search`, &result),)if err != nil {log.Fatal(err)}if strings.Contains(result, "Golang") {fmt.Println("Test Passed: 'Golang' found in search results")} else {fmt.Println("Test Failed: 'Golang' not found in search results")}
}

Go测试框架编写多个UI测试

新建main_test.go文件

main_test.go-多种测试结果

测试用例:

  1. 检查搜索结果是否包含术语“Golang”
  2. 验证搜索栏是否在 Google 主页上可见
  3. 检查空查询是否会导致没有搜索结果
package mainimport ("context""github.com/chromedp/chromedp""github.com/chromedp/chromedp/kb""strings""testing""time"
)// checks that the search results contain "Golang"
func TestGoogleSearch_Golang(t *testing.T) {opts := chromedp.DefaultExecAllocatorOptions[:]opts = append(opts,chromedp.Flag("headless", false),chromedp.Flag("disable-gpu", false),chromedp.Flag("start-maximized", true),)allocCtx, cancel := chromedp.NewExecAllocator(context.Background(), opts...)defer cancel()ctx, cancel := chromedp.NewContext(allocCtx)defer cancel()ctx, cancel = context.WithTimeout(ctx, 15*time.Second)defer cancel()var result stringerr := chromedp.Run(ctx,chromedp.Navigate("https://www.google.com"),chromedp.WaitVisible(`//textarea[@name="q"]`),chromedp.SendKeys(`//textarea[@name="q"]`, "Golang"),chromedp.SendKeys(`//textarea[@name="q"]`, kb.Enter),chromedp.WaitVisible(`#search`),chromedp.Text(`#search`, &result),)if err != nil {t.Fatalf("Test Failed: %v", err)}if strings.Contains(result, "Golang") {t.Log("Test Passed: 'Golang' found in search results")} else {t.Errorf("Test Failed: 'Golang' not found in search results")}
}// checks that the search bar is visible
func TestGoogleSearch_SearchBarVisible(t *testing.T) {opts := chromedp.DefaultExecAllocatorOptions[:]opts = append(opts,chromedp.Flag("headless", false),chromedp.Flag("disable-gpu", false),chromedp.Flag("start-maximized", true),)allocCtx, cancel := chromedp.NewExecAllocator(context.Background(), opts...)defer cancel()ctx, cancel := chromedp.NewContext(allocCtx)defer cancel()ctx, cancel = context.WithTimeout(ctx, 15*time.Second)defer cancel()err := chromedp.Run(ctx,chromedp.Navigate("https://www.google.com"),chromedp.WaitVisible(`//textarea[@name="q"]`),)if err != nil {t.Errorf("Test Failed: Search bar not visible - %v", err)} else {t.Log("Test Passed: Search bar is visible")}
}// checks if there are results when the search query is empty
func TestGoogleSearch_EmptyQuery(t *testing.T) {opts := chromedp.DefaultExecAllocatorOptions[:]opts = append(opts,chromedp.Flag("headless", false),chromedp.Flag("disable-gpu", false),chromedp.Flag("start-maximized", true),)allocCtx, cancel := chromedp.NewExecAllocator(context.Background(), opts...)defer cancel()ctx, cancel := chromedp.NewContext(allocCtx)defer cancel()ctx, cancel = context.WithTimeout(ctx, 15*time.Second)defer cancel()var result stringerr := chromedp.Run(ctx,chromedp.Navigate("https://www.google.com"),chromedp.WaitVisible(`//textarea[@name="q"]`),chromedp.SendKeys(`//textarea[@name="q"]`, ""), // Empty querychromedp.SendKeys(`//textarea[@name="q"]`, kb.Enter),chromedp.WaitVisible(`#search`, chromedp.ByID),chromedp.Text(`#search`, &result),)if err != nil {t.Fatalf("Test Failed: %v", err)}if result == "" {t.Log("Test Passed: No search results for empty query")} else {t.Errorf("Test Failed: Unexpected results for empty query")}
}

执行测试

将main.go和main_test.go放在同一目录,然后执行命令

go test -v

测试结果

http://www.hkea.cn/news/189307/

相关文章:

  • 天津进口网站建设电话青岛网站建设公司
  • 游戏币网站建设win7优化大师官方网站
  • 技术专业网站建设班级优化大师网页版登录
  • 外国网站上做雅思考试台州百度推广优化
  • 男女做那种的的视频网站国内最好的搜索引擎
  • 泉州做网站优化价格成功品牌策划案例
  • 做网站去哪个平台资源优化排名网站
  • 备案的网站名称可以改吗百度青岛代理公司
  • 专做进口批发的网站关键词优化多少钱
  • 做网站有了空间在备案吗百度权重高的网站有哪些
  • 做空间的网站著名的网络营销案例
  • 做网站客户尾款老不给怎么办百度推广年费多少钱
  • 想要将网站信息插到文本链接怎么做百度关键词搜索
  • 江苏网站备案要多久seo域名综合查询
  • 大型网站建设机构津seo快速排名
  • 建设证件查询官方网站宁波做网站的公司
  • 那些网站招聘在家里做的客服网店推广策略
  • 湘西 网站 建设 公司sem代运营托管公司
  • 用css为wordpress排版西安seo外包服务
  • vs2005做网站百度推广官方网站登录入口
  • 乐从网站建设公司北京seo优化推广
  • 如何在网上接做网站的小项目市场监督管理局电话
  • 淘宝购物站优化
  • 石家庄最新疫情轨迹河南网站优化公司哪家好
  • 网站色彩搭配服务器ip域名解析
  • 哪个网站专业做安防如何注册域名网站
  • 穆棱市住房和城乡建设局网站关键词词库
  • 成都网站建设市场什么是网络营销的核心
  • 深圳找人做网站廊坊优化外包
  • 衡阳市城市建设投资有限公司网站湖南企业seo优化报价