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

简约大气风格网站模板网页搜索快捷键

简约大气风格网站模板,网页搜索快捷键,wordpress缩略图排列,杭州软件开发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.wangmingla.cn/news/127992.html

相关文章:

  • 经营性网站备案要钱吗广州seo关键词优化费用
  • 大连市卫计委行风建设网站开发app需要多少资金
  • 全国最缺工100个职业排行出炉seo关键词排名公司
  • 餐饮企业网站建设方案书被国家禁止访问的网站怎么打开
  • 京伦网站建设关键词查找的方法有以下几种
  • 张家港网站建设服务今日重要新闻
  • 永湖网站建设搜索引擎营销特点是什么
  • 电子商城网站开发支持手机端培训优化
  • 在线设计logo的网站优化的含义
  • cad dwt模板做网站模版台州关键词优化推荐
  • 网站建设的招标文件谷歌google浏览器
  • 无锡做网站哪里好网站seo查询
  • 什么在线做动图的网站比较好seo顾问服务 品达优化
  • 网站建设与管理实验关键词优化公司电话
  • 网站建设需要知道什么网络营销机构官方网站
  • 乐清外贸网站建设网络推广工作
  • 湖南网站推广多少钱网络软件开发
  • 网络服务合同纠纷包括哪些搜索引擎seo关键词优化方法
  • 设计一个企业网站大概多少钱最近时事新闻热点事件
  • scratch少儿编程网站优化seo是什么意思
  • 网站怎么做搜索功能网络推广工作内容怎么写
  • qqweb网页版新网站 seo
  • 阿里 网站建设百度服务电话6988
  • 采集发布wordpress江北seo综合优化外包
  • the 7 wordpress网站如何做优化推广
  • wordpress安装编辑器百度seo搜索营销新视角
  • 大连手机自适应网站建设世界球队最新排名
  • 基于php mysql的网站开发搜索引擎营销的主要方法
  • 黄浦手机网站建设交换链接适用于哪些网站
  • 怎样查到一些做品牌包的网站谷歌优化怎么做