软件测试实战:下一代自动化测试工具-Playwright

下一代自动化测试工具-Playwright

1.playwright简介与现有工具对比

Playwright是微软开源的一个UI自动化测试工具。添加了默认等待时间增加脚本稳定性,并提供视频录制、 络请求支持、自定义的定位器、自带调试器等新特性。

playwright的优势:

  • Selenium需要通过WebDriver操作浏览器;Playwright通过开发者工具与浏览器交互,安装简洁,不需要安装各种Driver。
  • Playwright几乎支持所有语言,且不依赖于各种Driver,通过调用内置浏览器所以启动速度更快。
  • Selenium基于HTTP协议(单向通讯),Playwright基于Websocket(双向通讯)可自动获取浏览器实际情况。
  • Playwright为自动等待:
  • 等待元素出现(定位元素时,自动等待30s,时间可以自定义,单位毫秒)
  • 等待事件发生
  • Playwright支持异步方式
  • 2.playwright安装与脚本脚本录制

    安装:

    开始录制:

    自动打开浏览器和录制界面

    以百度为例,输入百度 址打开百度页面,搜索框中输入“playwright”,点击“百度一下”按钮,录制代码如下:

    通过以上代码可以了解到:

  • playwright支持同步和异步两种使用方法
  • 不需要为每个浏览器下载webdriver
  • 相比selenium多了一层context抽象
  • 支持无头浏览器,且较为推荐(headless默认值为True)
  • 可以使用传统定位方式(CSS,XPATH等),也有自定义的新的定位方式(如文字定位)
  • 没有使用selenium的先定位元素,再进行操作的方式,而是在操作方法中传入了元素定位,定位和操作同时进行(其实也playwright也提供了单独的定位方法,作为可选)
  • 很多方法使用了with的上下文语法
  • 3.playwright基本概念

    browser

    浏览器:支持多种浏览器:Chromium(chrome、edge)、Firefox、WebKit(Safari),一般每一种浏览器只需要创建一个browser实例。示例:

    context

    上下文:一个浏览器实例下可以有多个context,将浏览器分割成不同的上下文,以实现会话的分离,如需要不同用户登录同一个 页,不需要创建多个浏览器实例,只需要创建多个context即可。示例:

    page

    页面:一个context下可以有多个page,一个page就代表一个浏览器的标签页或弹出窗口,用于进行页面操作。示例:

    frame

    一个页面至少包含一个主frame,新的frame通过iframe标签定义,frame之间可以进行嵌套,只有先定位到frame才能对frame里面的元素进行定位和操作。playwright默认使用page进行的元素操作会重定向到主frame上。示例:

    selector

    所有元素操作都需要使用选择器定位到要操作的元素,playwright同时支持css、xpath和自定义的选择器,使用时无需指定类型,playwright会自动进行判断。示例:

    自动等待

    像page.click(selector)、page.fill(selector, value)之类的元素操作会自动等待元素可见且可操作。

    4.项目实战

    结合pytest

    想了解更多自动化测试工具,下方可留言哦,之后更新。

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年2月20日
    下一篇 2022年2月20日

    相关推荐