• 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/

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   一、Charles介绍  Charles是一款用Java编写的代理软件,电脑或者手机访问网站首先会访问到Charles代理工具上,由代理工具再把访问数据转发到相应的网站上,所以可以很好的通过设置Charles,对接口的请求和响应进行加工处理。  Fiddler虽然也是代理工具,但是Charles比Fiddler更好的地方是Charles接口管理层次分明,Charles可以用在Mac平台上。  二、Charles功能  1.Charles  是一款Proxy代理工具  2.Throtte Seting  模拟弱网环境  3. DNS Spoofing  &nbs...
            0 0 1303
            分享
          • 接着上篇《深聊性能测试,从入门到放弃之:如何对IO进行性能调优(上)》,我们继续来分享IO调优4、IO调整4.1 磁盘速度改进改进方式,主要分两种:①磁盘快取监控(disk cache controller)②磁盘列阵技术4.1.1 磁盘快取监控(disk cache controller)定义将从磁盘读取的数据存在快取内存(cache memory)中,以减少磁盘存储的次数。数据的读取都在快取内存中进行,大幅增加存取的速度。如果要读取的数据不在快取内存中,或要写数据到磁盘时,才做磁盘的存取动作。注意点这种方式在单工环境(single-tasking environment),如DOS之下,对...
            1 0 2818
            分享
          • 接口 提到接口测试,免不了首先需要知道什么是接口,接口也就是平常工作当中经常提到的API,英文全称Application Programming Interface,现在市面上有非常多种风格的Web API,目前最流行的是也容易访问的一种风格是REST或者叫RESTful 风格的API。什么是接口测试和为什么要做接口测试?接口测试顾名思义就是对测试系统组件间接口的一种测试,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。那我们为什么要做接口测试呢,现如...
            0 0 1997
            分享
          • 尽管现在已经不再做自动化测试了,但是对自动化测试还是保持一直保持关注的。就像是尽管跟女神相隔两地,无缘一睹真容,但还是悄悄关注她的微博,默默的在朋友圈中刷出关于她的点点滴滴。从业很多年了,做过很多项目,有成功有失败,但是自动化测试项目的失败率无疑是最高的。久而久之,便渐渐能够总结出一种自动化测试作死的节奏。节奏一:大神,帮帮忙啊,救命啊,老是搞不定啊这句话我经常看到,一般来说有时间的话,我会教你怎么去解决这个问题。不过几天后,类似的问题出现了,你还是解决不了。首先,大神很忙。有些大神愿意分享,他们贡献的资料很多,但是,你不查,你不看,你总是认为"不耻上问"最直接,但大神帮你...
            0 0 788
            分享
          •   我们平常使用的网站、APP和桌面客户端等软件,都离不开一个叫做数据库的东西的助力,数据库就像一个商店的仓库,如果没有这个仓库,那么商店就不能提供给顾客任何实质性的物品。目前数据库技术已经渗透到比如政务,金融,银行,医疗,军工,互联网行业等,而随着软件体量的增长,曾经被忽略的数据库功能、性能和安全都越来越急需得到更多的质量保障。  相信很多测试小伙伴一开始做功能测试(黑盒测试)时,更多地关注的是前端UI、主要功能和逻辑的实现,而忽略了数据库的测试,或者说在数据库这块只是进行简单的增删改查检查就草草结束了。其实数据库要测试的方面有很多,今天就列举一些和大家分享。  首先我们来认识一下目前主流的...
            0 0 806
            分享
      • 51testing软件测试圈微信