51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 683|回复: 0
打印 上一主题 下一主题

[转贴] 微软自动化测试工具palywright

[复制链接]
  • TA的每日心情
    无聊
    前天 09:05
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-7-15 11:00:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    前言
      我们介绍许多e2e的自动化测试工具——
      一类是基于 Selenium 的测试框架:
      ·robot framework
      · gauge
      · SeleniumBase
      · seldom(我自己维护的)
      另一类是基于JS语言的测试工具:
      · cypress
      · puppeteer
      前都本身就是基于Selenium的自动化测试工具,后者在测试人员这个圈子也是未能撼动Selenium的地位,我认为有两个原因,一是Selenium是一个非常成熟的自动化测试工具,有大量的学习资料;另一方面selenium支持Python,没错Python以其简单的语法已经成为了测试人员学习编程语言的不二之选。
      好了,介绍个新的自动化测试工具还要铺垫这么多?这是因为我看了palywright的文档之后,觉得这工具大概率能在测试人员这个群体中流行起来。
      playwright 介绍
      官方:https://playwright.dev/
      介绍
      Playwright enables fast, reliable and capable automation across all modern browsers.

    支持平台&浏览器


    支持语言
      · JavaScript and TypeScript: https://github.com/microsoft/playwright
      · Java: https://github.com/microsoft/playwright-java
      · Python: https://github.com/microsoft/playwright-python
      · C#: https://github.com/microsoft/playwright-sharp
      从支持的平台、语言和浏览器来看,是不是有Selenium的味道。这是微软爸爸的项目,从微软这几年拥抱开源的态度来看,这个工具应该会得到持续的支持。
      安装
      不同的语言安装方式不同,根据上面的链接,到对应的项目下面查看安装方式。本文以Python为例。
      安装plywright
    1.   > pip install playwright
    复制代码
    安装浏览器
    1. > python -m playwright install
    2.   Downloading chromium v827102 - 89.4 Mb [====================] 100% 0.0s
    3.   chromium v827102 downloaded to C:\Users\fnngj\AppData\Local\ms-playwright\chromium-827102
    4.   Downloading firefox v1205 - 74.9 Mb [====================] 100% 0.0s
    5.   firefox v1205 downloaded to C:\Users\fnngj\AppData\Local\ms-playwright\firefox-1205
    6.   Downloading webkit v1383 - 51.4 Mb [====================] 100% 0.0s
    7.   webkit v1383 downloaded to C:\Users\fnngj\AppData\Local\ms-playwright\webkit-1383
    复制代码
    录制脚本
      plywright可以在浏览器中记录用户的互动并生成代码。
      执行命令
    1. > python -m playwright codegen
    复制代码
    视频
      接下来,对录制的脚本做简单的修饰。
    1. from time import sleep
    2.   from playwright.sync_api import sync_playwright
    3.   def run(playwright):
    4.       pw = playwright().start()
    5.       browser = pw.chromium.launch(headless=False)
    6.       context = browser.new_context()
    7.       # Open new page
    8.       page = context.new_page()
    9.       # Go to https://www.baidu.com/
    10.       page.goto("https://www.baidu.com/")
    11.       # Fill input[name="wd"]
    12.       page.fill('input[name="wd"]', "playwright")
    13.       # Click input[type="submit"]
    14.       page.click('input[type="submit"]')
    15.       sleep(2)
    16.       # assert title
    17.       assert page.title() == "playwright_百度搜索"
    18.       # ---------------------
    19.       context.close()
    20.       browser.close()
    21.   if __name__ == '__main__':
    22.       run(sync_playwright)
    复制代码
    从API来看,和大多数自动化工具都差不多。
      异步的写法
      playwright官方例子中给出的异步的写法。 从它提供的API sync_playwright 的命名也可以看出,它很喜欢异步。
    1. import asyncio
    2.   from playwright import async_playwright
    3.   async def main():
    4.       async with async_playwright() as p:
    5.           for browser_type in [p.chromium, p.firefox, p.webkit]:
    6.               browser = await browser_type.launch(headless=False)
    7.               page = await browser.newPage()
    8.               await page.goto('https://www.baidu.com')
    9.               await page.screenshot(path=f'example-{browser_type.name}.png')
    10.               await browser.close()
    11.   asyncio.get_event_loop().run_until_complete(main())
    复制代码







    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 03:39 , Processed in 0.074183 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表