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

长沙知名网站沈阳男科医院排名前十

长沙知名网站,沈阳男科医院排名前十,营销型网站单页,东道设计公司官网招聘一、背景#xff1a;UI自动化的痛点#xff1a; 1、设计脚本耗时#xff1a; 需要思考要如何模拟用户的操作#xff0c;如何触发页面的事件#xff0c;还要思考如何设计脚本#xff0c;定位和操作要交互的元素、路径、位置#xff0c;再编写代码逻辑#xff0c;往复循… 一、背景UI自动化的痛点 1、设计脚本耗时 需要思考要如何模拟用户的操作如何触发页面的事件还要思考如何设计脚本定位和操作要交互的元素、路径、位置再编写代码逻辑往复循环数次要不停在浏览器和代码编辑器中进行切换。 2、调试脚本耗时 初步完成元素定位和操作的脚本后还要一 一进行测试验证程序运行是否符合预期要反复进行调试。 3、维护成本较高 面向用户的界面的迭代变化频率较高基于界面元素构建的测试脚本也要跟着变那么我们面临的就是不停的更新维护既有的UI自动化脚本 思考如何可以不用考虑定位元素、不用手写代码、并且降低维护成本地完成UI自动化流程 二、简介与安装 1、介绍-特点 Playwright是一个由微软开发的自动化测试框架通过“录制为主编写为辅”的方式来完成测试脚本。 1playwright的优点 1支持所有主流浏览器 •支持所有主流浏览器基于Chromium内核的Chrome 和 Edge浏览器, WebKit内核的Safari 和 Firefox浏览器。 •支持跨平台Windows、Linux 和macOS •可用于模拟移动端WEB应用的测试不支持在真机上测试。 •支持无头模式默认和有头模式2快速可靠的执行 •自动等待元素默认30s •Playwright基于Websocket协议可以接受浏览器服务端的信号也可在后台服务器完成。selenium采用的是HTTP协议只能客户端发起请求。 •浏览器上下文并行单个浏览器实例下创建多个浏览器上下文每个浏览器上下文可以处理多个页面。 •有弹性的元素选择可以使用文本、可访问标签选择元素。3强大的自动化能力 •playwright不受页面内JavaScript执行范围的限制可以自动化控制多个页面。 •自动生成测试代码Playwright提供了一个CLI工具可以记录用户在浏览器中的操作并生成相应的测试代码。 •强大的网络控制Playwright 引入了上下文范围的网络拦截来存根和模拟网络请求。 •现代web特性支持Shadow DOM选择元素位置定位页面提示处理Web Worker等Web API。 •覆盖所有场景支持文件下载、上传、输入、点击暗黑模式等。 •支持主流编程语言python、Java、Node.js、C#、.Net等 2playwright的局限性 1 Playwright不支持旧版Microsoft Edge或IE11。所以对浏览器版本有硬性要求的项目不适用。2 需要SSL证书进行访问的网站可能无法录制该过程需要单独定位编写。3 移动端测试是通过桌面浏览器来模拟移动设备无法控制真机。4 Playwright的社区规模相对较小可能会导致在解决问题时的资源有限 3与传统的selenium对比 2、安装playwright 建议使用镜像不然比较慢 pip install playwright -i https://pypi.tuna.tsinghua.edu.cn/simple 安装成功 3、安装浏览器环境 此命令会一次性安装Chromium, Firefox 和 WebKit 内置浏览器playwright就是通过这些浏览器操作web应用 playwright install三、UI脚本录制 1、录制脚本 在控制台通过codegen命令使用playwright进行脚本录制 #默认使用Chromium playwright codegen URL#指定浏览器 playwright codegen -- browser firefox URL#录制脚本自动保存到本地 playwright codegen -o D:\demo.py -b chromium URL -o 生成自动化脚本的目录默认地址为cmd运行命令的地址 -b 指定浏览器驱动 示例 2、录制浏览器操作-自动生成脚本 playwright codegen https://www.baidu.com/ 3、生成的脚本语言种类 支持自动生成python、Java、Node.js、C#、.Net等编程语言 四、UI自动化结合接口自动化使用 通过调用提供出的接口可以做UI自动化的前置或者后置的 造数、清数、设置mock以及调用各业务线维护的P0级用例等等均可 1、接口的token 2、示例 使用 Playwright 框架模拟了一个 POST 请求完成接口的调用在发起放款流程前清除在途贷款单。 plywright本身也可以应用在接口自动化 五、UI自动化断言 page browser.new_page(timeout60000) # 设置 timeout 为 60 秒 page.goto(https://example.com, wait_untilnetworkidle) # 使用 waitUntil将等待网络请求停止后再继续执行 1、自动断言 playwright本身支持自动生成对元素的基本断言代码例如元素是否可见、元素的文本是否匹配、元素的属性值是否一致、元素的快照等 2、常用的用于断言方法 对页面文本断言、对元素断言 ,对URL断言 # 断言页面标题expect(page).to_have_title(Example Domain)# 断言 h1 文本内容expect(page.locator(h1)).to_have_text(Example Domain)# 断言元素可见expect(page.locator(textMore information...)).to_be_visible()# 断言元素不可见# 假设页面上有一个隐藏的元素ID为hidden-element# expect(page.locator(#hidden-element)).not_to_be_visible()# 断言元素属性# 假设页面上有一个按钮ID为submit-button其属性为disabled# expect(page.locator(#submit-button)).to_have_attribute(disabled, true)# 断言元素数量# 假设页面上有三个div元素类名为item# expect(page.locator(div.item)).to_have_count(3)# 断言 URLexpect(page).to_have_url(https://example.com)# 断言输入框的值# 假设页面上有一个输入框名称为username其值为testuser# expect(page.locator(input[nameusername])).to_have_value(testuser)# 断言元素的 CSS 属性# 假设页面上有一个按钮其背景颜色为rgb(0, 123, 255)# expect(page.locator(button)).to_have_css(background-color, rgb(0, 123, 255))# 断言元素可编辑# 假设页面上有一个输入框# expect(page.locator(input)).to_be_editable()# 断言复选框已选中# 假设页面上有一个复选框# expect(page.locator(input[typecheckbox])).to_be_checked() 六、截图比对 可以对页面、元素等进行截图并比对 1、图像比对方法 本次介绍的图片比对方法ImageChops.difference需要引入pillow库pip install pillow原理将图像数据转换为 Image 对象然后使用像素值进行比较1图像对齐首先该方法会对齐两幅图像的大小和位置。如果两幅图像的大小不同较小的图像会被扩展到与较大图像相同的大小。如果它们的位置不同difference() 会尝试将它们对齐到相同的位置。2像素值比较然后对于每个对应的像素点该方法会计算它们的RGB值之间的差异。也就是计算每个通道红、绿、蓝中像素值的绝对差异并将这些差异值合并成一个新的像素值。3差异图像生成最后该方会创建一个新的图像差异图像其中每个像素的值表示了原始图像中对应像素的差异程度。差异图像通常显示为黑白图像白色表示两个图像在该位置完全不同黑色表示它们完全相同。 图像比对方法介绍 选择哪种方法取决于你的具体需求和图像特性。 如果需要非常精确的对比像素级对比可能是最好的选择 如果你希望对比结果更符合人类视觉感知SSIM 或 EMD 可能更合适。 1Pillow (PIL)提供了基本的图像处理功能包括像素级对比。 2imagehash实现了 Perceptual Hashing 算法。 3scikit-image提供了 SSIM 和其他图像相似性度量的计算函数。 4pyemd实现了 Earth Movers Distance 算法。 5TensorFlow 或 PyTorch可以使用这些深度学习框架来构建和训练自己的图像对比模型。 2、截取某个元素 #定位元素 element page.get_by_role(button, name立即登录)# 对元素进行截图 screenshot element.screenshot() 3、截取页面 #打开页面 page.goto(https://www.baidu.com/)#截取页面 page.screenshot(pathpage.png) 4、比对方式 1本地图片与测试流程中图片比对 #在URL页面中截图page1page.goto(URL1)page.screenshot(pathpage1.png)image1 Image.open(page1.png)#在本地通过绝对路径获取图片2image2 Image.open(local path)diff ImageChops.difference(image1, image2)if diff.getbbox():print(The two pages are different.)else:print(The two pages are same.) 2测试流程中图片比对 page.goto(URL1)page.screenshot(pathpage1.png)page.goto(URL2)page.screenshot(pathpage2.png)image1 Image.open(page1.png)image2 Image.open(page2.png)diff ImageChops.difference(image1, image2)if diff.getbbox():print(The two pages are different.)else:print(The two pages are same.) 七、模拟移动端 1、说明 playwright支持模拟特定设备的浏览器行为例如用户代理、屏幕尺寸、视口以及是否启用了触摸。所有测试都将使用指定的设备参数运行。 2、示例 通过配置UA结合device模拟移动端小贷日常用于移动端测试、用户鉴权等场景 browser playwright.chromium.launch(headlessFalse) # browser2 playwright.chromium.launch(channelchrome, args[--device, iPhone 15 Pro Max])mobile_context browser.new_context(user_agentMozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148/applicationJDJR-AppclientTypeiosiosTypeiphoneclientVersion6.8.70HiClVersion6.8.60isUpdate0osVersion16.6.1osNameiOSscreen932*430srcApp StorenetWork2netWorkType5CpayJSUnionPay/1.0 JDJRstockSDKstocksdk-iphone_4.2.3sPointjdPay(*#jdPaySDK*#jdPayChanneljdfinancejdPayChannelVersion6.8.60jdPaySdkVersion4.01.17.00jdPayClientNameiOS*#jdPaySDK*#),viewport{width: 400, height: 700})page2 mobile_context.new_page() 八、可视化测试报告输出 1、allure下载与安装 allure下载地址Central Repository: io/qameta/allure/allure-commandline 需要配置环境变量 一切安装好之后在cmd里面查看安装的版本号 allure --version 2、安装依赖 pip install -i https://pypi.douban.com/simple allure-pytest npm install -g allure-playwright2.13.5 3、应用 用例文件里分层标识信息 标题 allure.title(用例标题)步骤 with allure.step(执行步骤):描述 def test_function描述 main文件里使用 # 获得测试结果并以allure的数据格式保留下来 1pytest.main([--alluredir, allure_result, --clean-alluredir,test_loan_pc_old.py])•[--alluredir, allure_result] 表示将测试结果保存在 allure_result 文件夹中用于后续生成报告。 •[--clean-alluredir] 表示在运行测试之前清空 allure_result 文件夹中的内容避免与上一次测试的结果混淆。 •[test_loan_pc_old.py] 指定要运行的测试用例文件名。# 通过allure的数据进行报告的生成 2allure generate --clean ./allure_result -o ./allure_report 根据 allure_result 的数据生成测试报告并将报告保存在 allure_report 文件夹中 --clean 选项表示在生成报告之前清空 allure_result 文件夹中的内容。 4、运行结果 自动化脚本里面对断言失败和用例执行情况进行可视化输出 1一成功一失败 对断言失败和用例执行情况进行可视化输出 2用例执行均成功 九、PO模式
http://www.hkea.cn/news/14479842/

相关文章:

  • 商城网站建设效果网页图片加载慢解决方法
  • 网站是什么?网站建设按钮
  • 手表官方网站西安网站设计哪家好
  • 在云服务器上搭建网站wordpress的数据库配置文件
  • 河源市住房建设局网站wordpress 文章版本管理
  • 东莞做展示网站的公司如何把自己做的网站挂网上
  • ps中网站页面做多大的周村有做网站广告的吗
  • 网站 div多少钱翻译英文
  • php网站费用wordpress分类打开404
  • 最新远程网站建设服务本科自考怎么报名
  • 做电影网站需要多打了服务器wordpress旧版本
  • 网站设计的文案做网站的升级人
  • 贺岁币在建设银行那个网站预约商务网站建设与维护 ppt
  • 网站标签怎样修改最新推广平台
  • 可以做点赞的网站赚钱apache安装WordPress
  • 网站维护主要是做哪些西海岸建设局网站
  • 嘉兴网站制作怎么添加按钮在线网页代理免费版
  • 私人pk赛车网站怎么做福州开发企业网站
  • 央企网站建设意义wordpress 内容关联
  • 网站建设软件夫唯seo培训
  • 网站单页制作营销网站开发规划
  • 单网页网站如何做百度词条
  • 孵化基地网站怎么建设高校思政专题网站建设
  • 如何构建一个网站没有后台的网站怎么做排名
  • 自适应网站制作公司加速器免费加速
  • 怎么设置网站关键词微信二维码在线制作
  • 网站制作公司排名前十起名字大全免费
  • 无锡做网站公司网店设计是什么
  • 网站广告联盟怎么做的图书馆网站开发策划书
  • 长沙网站建设哪个公司好公司做网络宣传哪个网站比较好