《刚刚问世》系列初窥篇-Java+Playwright自动化测试-5-创建首个自动化脚本(详细教程)

news/2024/12/26 0:24:50/文章来源:https://www.cnblogs.com/du-hong/p/18295976

1.简介

前面几篇宏哥介绍了两种(java和maven)环境搭建和浏览器的启动方法,这篇文章宏哥将要介绍第一个自动化测试脚本。前边环境都搭建成功了,浏览器也驱动成功了,那么我们不着急学习其他内容,首先宏哥搭建好的环境中创建首个完整的自动化测试脚本,让小伙伴或者童鞋们提前感受感受,也是为了激起大家的学习兴趣。

宏哥的个人经验是:自动化脚本编写比较容易,最大的困难去如何去写测试断言。自动化测试,最重要的还是落在测试上面,而不是自动化,自动化只是手段。断言的写法,就考验出一个测试工程师是否考虑全面,体现出你的用例编写水平。

2.测试用例

很多童鞋或者小伙伴们可能会有这样有个误区:自动化测试是不需要设计测试用例的。其实不然它也是需要设计测试用例,然后根据用例进行脚本的编写和断言,只不过是把用例以代码的形式体现出来,而机器恰好可以识别代码,将代码跑起来,其实就是在执行你的用例,只不过是由机器帮你自动执行。好了废话少说开始说说宏哥今天要做的测试是:打开百度,输入北京-宏哥搜索,验证打开链接有没有北京-宏哥博客园的链接。

测试用例:打开百度首页,搜索:北京-宏哥,然后检查搜索列表,有没有 北京-宏哥 博客园链接。后续文章为了避免不必要的麻烦和错误,宏哥都在maven搭建的环境中进行实战演示。

2.1步骤

1.启动浏览器

2.打开百度首页:http://www.baidu.com

3.判断这个页面是不是我们提前知道的页面

4.定位搜索输入框,记录下输入框元素的id定位表达式:#kw

5.定位搜索提交按钮(百度一下),获取id定位表达式:#su

6.在搜索输入框输入:北京-宏哥,点百度一下这个按钮

7.在搜索结果列表去判断是否存在北京-宏哥博客园这个链接

8.退出浏览器,结束测试

2.2代码设计

2.3参考代码

package com.bjhg.playwright;import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;/*** @author 北京-宏哥* * @公众号:北京宏哥(微信搜索,关注宏哥,提前解锁更多测试干货)* * 《刚刚问世》系列初窥篇-Java+Playwright自动化测试- 5-创建首个自动化脚本(详细教程)** 2024年7月12日*/
public class LaunchChrome {@SuppressWarnings("deprecation")public static void main(String[] args) {try (Playwright playwright = Playwright.create()) {//使用chromium浏览器,# 浏览器配置,设置以GUI模式启动Chrome浏览器(要查看浏览器UI,在启动浏览器时传递 headless=false 标志。您还可以使用 slowMo 来减慢执行速度。Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false).setSlowMo(50));//创建pagePage page = browser.newPage();//浏览器打开百度page.navigate("https://www.baidu.com/");//判断title是不是 百度一下,你就知道try{String baidu_title = "百度一下,你就知道";assert baidu_title == page.title();System.out.println("Test Pass");}catch(Exception e){e.printStackTrace();}//定位搜索输入框,输入北京-宏哥page.locator("#kw").type("北京-宏哥"); //定位搜索提交按钮(百度一下)。点击page.locator("#su").click();//这里通过元素XPath表达式来确定该元素显示在结果列表,从而判断Selenium官网这个链接显示在结果列表。Locator ele_string=page.locator("//*[@id='1']/div/div[1]/h3/a");String ele_string1 = ele_string.innerText();System.out.println(ele_string1);try{if(ele_string1.equals("北京-宏哥 - 博客园")){System.out.println("Testing is successful!");}}catch(Exception e){e.printStackTrace();}//关闭page
          page.close();//关闭browser
          browser.close();}}}

2.4运行代码

1.运行代码,右键Run AS->java Application,就可以看到控制台输出,如下图所示:

2.运行代码后电脑端的浏览器的动作。如下图所示:

3.小结

3.1equals和==的区别

宏哥这里简单的说一下,更详细的你可以百度查一下。关于判断两个字符串是否相等的问题。在编程中,通常比较两个字符串是否相同的表达式是“==”,但在java中不能这么写。在java中,用的是equals();

例:A字符串和B和字符串比较:
if(A.equals(B)){}
返回true 或false.

String 的equals 方法用于比较两个字符串是否相等。由于字符串是对象类型,所以不能用简单的“==”判断。而使用equals比较两个对象的内容是否相等。

注意:equals()比较的是对象的内容(区分字母的大小写格式),但是如果使用“==”比较两个对象时,比较的是两个对象的内存地址,所以不相等。即使它们内容相等,但是不同对象的内存地址也是不相同的。

好了,今天时间也不早了,首个Java+Playwright的自动化测试脚本就分享到这里,感谢你耐心地阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/837341.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年腾讯云双十一薅羊毛最强攻略:错过一次又得等一年!

2024年腾讯云双十一活动为用户提供了丰富的云产品和优惠福利,以下是一份省钱、省心、省力的购买攻略,帮助大家制定必抢清单: 一、活动时间与入口活动时间:即日起至2024年11月30日23:59:59,具体以页面变更为准。 活动入口:腾讯云双十一活动页面二、优惠活动概览 1.服务器限…

BGP路由控制

BGP路由控制概述 BGP协议的重点不在于发现和计算路由,而在于通过丰富的属性和策略实现对路由的控制。 控制BGP路由可以通过两种方式实现。 一是通过BGP 的基本属性实现对BGP 选路的控制。这种方式比较简单,主要是通过配置、修改BGP 基本属性值以影响协议的选路,从而实现控制…

Windows右键新建列表排序

前言全局说明Windows右键新建列表排序一、说明 环境: Windows 11 家庭版 23H2 22631.3737二、Windows11 右键新建列表排序 2.1 打开注册表项 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew2.2 编辑 Classes 键 调整成…

如何让领导轻松在本地查看Allure报告

如何让领导轻松在本地查看Allure报告 问题描述 当我们把精心生成的Allure报告原始文件发送给领导后,领导直接打开index.html文件时,页面却一直处于加载状态,无法显示数据。通过F12开发者工具检查,我们发现这是由于浏览器跨域请求问题导致的。具体来说,当尝试通过XMLHttpRe…

使用yt-dlp下载youtube高清2k 60fps视频

只演示windows下的操作,linux和mac应该差不多的命令行。 首先放上github仓库地址:https://github.com/yt-dlp/yt-dlp 它的介绍: 厉害啊,支持数千个网站。 支持的网站列表在这里:https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md 我们往下一点,找到: 下…

私有云部署在互联网公司中的应用案例解析

在互联网公司中,私有云的部署与应用案例已经成为许多企业实现数字化转型、提高资源利用效率、加强数据安全等目标的重要手段。私有云为公司提供了高度的控制权和定制化选项,尤其适用于对数据安全性和合规性有较高要求的公司。下面,我们将通过几个典型的应用案例来分析私有云…

10、Oracle三种监听方式

客户端对监听的三种连接方式 1、专用服务器模式专用服务器模式默认是启用的 专用服务器模式特点: 1、一个连接对应一个server process 好处:这个连接发送的SQL会被马上处理 坏处:即使这个连接空闲,这个server process还是存在,也需要占用资源,至少是内存资源 2、这种连接…

9、oracle trace监听连接

trace(跟踪)监听 有时候会出现这么一种情况:就是客户端连接不上监听,或者连接上监听以后有各种各样的故障,比如:连接慢、报错等等相关的信息,所以有时候需要对监听起一个trace(跟踪),看一下客户端对数据库监听的连接的一个情况如果客户端连接监听连不上的一个排错过程…

8、tnsnames文件配置

监听的配置文件 2、tnsnames.ora文件 tnsnames.ora文件:客户端的 配置tnsnames.ora监听文件 1、使用netca命令 指定图像映射机器 [oracle@db11g admin]$ export DISPLAY=192.168.56.1:0.0netca命令 [oracle@db11g admin]$ netca2、选择local net service name configuration,…

Redis中常见的数据类型及其应用场景Ib

五种常见数据类型 Redis中的数据类型指的是 value存储的数据类型,key都是以String类型存储的,value根据场景需要,可以以String、List等类型进行存储。各数据类型介绍:Redis数据类型对应的底层数据结构String 类型的应用场景 常用命令存放键值:set key value [EX seconds] …

博客园-awescnb插件-geek皮肤优化-links优化

简介 博客园-awescnb插件-geek皮肤下,对自定义链接(links)优化将自定义链接添加至原主链接下,同时适配移动端场景效果实现定义自定义HTML: 博客园->管理->设置->页脚 HTML 代码 添加相关代码//生成链接function createLinks(){for(let item of config.links){const…

一个基于 .NET 8.0 构建的简单、跨平台、模块化商城系统mt

公司SaaS系统有个给客户的员工发放金币,最后计算金币老是流水和总额对不上,以前负责这块的人做过修改还是不对,后来这负责人离职,接手大数据的事情后,该客户真在用金币这块业务,而且财务用这个结算对账,2023年底客户逼急了,要彻底解决这个问题:和负责这块的产品经理沟通…