• 0
  • 0
分享

一、高阶使用

1.1 拦截网络请求

网络拦截:

  • 无响应 pass

  • 中止 route.abort("aborted")

  • 放行 route.continue_()

  • 处理, 返回自定义的响应 route.fulfill()

Playwright使用 router 方法,并且传递以下参数:

  • url 要拦截地址表达式:

n glob表达式

n 正则表达式

n 返回布尔值的函数

  • handler ,拦截后进行执行的函数

n 接受 router 参数

中止响应,代码示例:

1.jpg

自定义响应,代码示例:

2.jpg

本来访问百度,自定义返回中访问到了金山文档首页。

1.2 pytest 管理用例

市面上的流行框架:unittest(标准库)、pytest(第三方库)

安装插件:

3.jpg

代码示例:

4.jpg

执行命令:# 获得网页报告

pytest --html=report.html

报告见下:

5.jpg

1.3 PO模型

playwright本身是支持PO模型的。

如打卡设置页,编写定位方法的py文件

6.jpg

测试用例时直接操作定位元素,组成业务逻辑即可

7.jpg

1.4 API 和 UI 自动化测试融合

好处:缩短自动化测试代码的整体运行时长。举个例子,我们要测试表单结果这个功能,只有查看表单结果这个操作本身才是我们的测试范围, 在查看表单结果之前的所有操作,例如用户注册—用户登录—用户创建表单—发布表单-填写表单 ,这一系列操作都属于“非测试部分”。

关键点:当从 API 请求切换到 UI 操作时,登录态应该从接口请求中带过来。(既保持同一会话cookie或 token)

1.5 数据驱动

数据驱动,指在自动化测试中处理测试数据的方式。方法是采用操作yaml文件进行测试数据与功能函数分离,代码示例见下:

1.jpg

2.jpg

备注:

  1. 还有excel、json等格式文件的方式,这里不概述。

  2. 需要提前安装库 pip install PyYaml

1.6 动态挑选用例执行

pytest框架支持多种方式的测试用例的挑选,这里我只介绍一种方式:

  • pytest.ini 文件中设置规则:markers = debug01

3.jpg

  • 需调试的测试用例打上标签: @pytest.mark.debug01

4.jpg

  • 执行命令 (--headful 带头执行,默认是无头模式)

pytest -m debug01 --headful

1.6 Allure测试报告

安装pip install allure-pytest

报告截图:

5.jpg

1.7 持续集成

持续集成这里采用的是jenkins,不过第一次运行会报错:jenkins目录没有浏览器驱动:

这个时候需要将C:\Users\win\AppData\Local\ms-playwright下的浏览器驱动复制到

jenkins的要求目录下,如:

C:\Windows\System32\config\systemprofile\AppData\Local\ms-playwright

备注:jenkins的job命令:

G:cd G:\InterAutoTest_Wworkon playwrightPRO && python run.py

2. 案例实战

1.jpg

测试用例要求:打卡功能,固定卡预览后,卡片类型是固定卡

测试脚本:

2.jpg

3.jpg


作者:testingbang

原文链接:http://blog.itpub.net/69942496/viewspace-2766517/

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、白盒测试白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。 这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。二、概述白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例的设计方法,盒子对应的是被测试的测试,"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。&q...
            9 9 7104
            分享
          •   职场新人对测试用例的困惑无非有以下几点:  1、什么是测试用例,为什么要写测试用例?  2、不知道怎么写,写了也不知道写的是否完整。  一、什么是测试用例?  百科的释义:  测试用例是对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。  简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。  二、为什么要设计测试用例?  1、指导测试工作的进行  测试用例可以把产品需求转换为可操作的步骤【步骤、操作、输入、输出、优先级等...
            0 0 983
            分享
          • 1.核心机制1.1.疑问:作用域有哪些?全局作用域的范围仅限于单个文件。在python中格式没有一个基于单个的、无所不包的情景文件的全局作用域。1.2.疑问:如何定义作用域?Def/class/lambda三种方式1.3.疑问:作用域的基本法则?LEGB法则L:本地作用域;E:上层结构中的本地作用域;G:全局作用域;B:内置作用域;法则描述:变量名引用分为四个作用域进行查找:LEGB,第一个能够完成查找的就算成功;默认状态下,变量名赋值会创建或者改变本地变量;全局声明将赋值变量名映射到模块文件内部的作用域;需要讲的就这么多^_^接下来,希望大家能自己慢慢去体会“引用”和“赋值”之间的区别,那将...
            13 13 1594
            分享
          •   据报道,当地时间周四,谷歌宣布,将在其加拿大平台上封锁加拿大新闻。在此之前,Facebook也采取了类似的措施,以此对抗该国强制要求互联网平台向当地新闻机构付费的新规。  当该法律大约6个月后生效时,谷歌将在其加拿大搜索结果及其他产品中删除指向加拿大新闻的网络链接。  Facebook母公司Meta上周也宣布了类似的声明,以此抗议加拿大刚刚通过的C-18法案,即《在线新闻法案》。  加拿大媒体行业呼吁对互联网巨头加强监管,以使新闻机构能够挽回多年来因为Facebook和谷歌等在广告市场攻城拔寨而遭受的损失。  加拿大独立预算监管机构去年估计,新闻企业每年可以从该法律强制的交易中获得3.3亿...
            0 0 1148
            分享
          • 自2014年成立以来,新浪金融评测室已连续成功举办六届手机银行APP测评,积攒了丰富的测评经验,获得了业界的广泛认可。2019年,新浪金融研究院对21家主流手机银行APP从用户体验、产品功能、性能安全和发展创新四个方面进行测评分析,并对各个APP的亮点和存在的问题进行了梳理。测评结果显示,工农中建四大行和招商、平安、民生、光大等股份制银行排名靠前,测评结果基本代表了目前银行业资金实力和科技实力最强的银行群体。用户使用APP过程中最直观的印象几乎都来自用户体验和产品功能。新浪测评中,这两项分值占比高达75%,基本上可以代表测评总分值。得分高的手机银行,用户体验和产品功能一定做得好。带给用户最丰富...
            0 0 2682
            分享
      • 51testing软件测试圈微信