当前位置:   article > 正文

【playwright】新一代自动化测试神器playwright+python系列课程52_playwright_route修改接口请求_playwright route

playwright route

Route类修改接口请求

在做web的UI自动化测试时,我们需要尽可能的测试全面,各个功能的正常场景和异常场景都需要覆盖到。这种情况下为了覆盖这些场景我们需要准备大量的测试数据,但是有些测试数据可能是不好准备的,尤其是一些异常场景的测试数据。这种情况下如果要测试全面,我们怎么办呢?
Playwright下的route类可以捕获和修改请求和响应,通过这种方式可以尽可能的覆盖所有测试场景。
Route可以拦截和处理特定的网络请求,以模拟不同的行为或进行自定义操作。您可以使用page.route()方法创建Route对象,并指定要拦截的请求URL或使用正则表达式进行匹配。一旦创建了Route对象,您可以通过调用route.continue()route.fulfill()route.abort()来控制请求的进一步处理。还可以通过route.request()route.response()属性来访问请求和响应对象。使用Route类,您可以拦截和修改网络请求,从而实现各种目的,如网络请求的模拟、修改请求头、延迟响应等。它是一个非常有用的工具,可用于各种Web自动化和测试场景中。
我们以禅道的添加用例来演示一下如何修改接口请求。
实践代码:

'''
# author=测试-老姜   交流微信/QQ:349940839
# 欢迎添加微信或QQ,加入学习群共同学习交流。
# QQ交流群号:877498247
# 西安的朋友欢迎当面交流。
'''

from playwright.sync_api import Playwright, sync_playwright, expect
def run(playwright=Playwright) -> None:
    browser = playwright.chromium.launch(headless=False,slow_mo=2000)
    context = browser.new_context()
    page = context.new_page()
    page.goto("http://127.0.0.1/zentao/user-login.html")
    page.locator("#account").fill("admin")
    page.locator("input[name=\"password\"]").click()
    page.locator("input[name=\"password\"]").fill("Deshifuzhi01")
    page.locator('text="登录"').click()
    page.goto('http://127.0.0.1/zentao/testcase-create-1-0-0.html')
    page.frame_locator('#appIframe-qa').locator('#title').fill('123456')

    def handle(route):
        data = route.request.post_data
        data = data.replace('123456','654321') #修改请求入参中标题的值,从123456改为654321
        route.continue_(post_data  = data) # 修改请求的入参后继续发起请求

    url = 'http://127.0.0.1/zentao/testcase-create-1-0-0.html'
    page.route(url,handle) # 监听添加用例接口
    page.frame_locator('#appIframe-qa').locator('#submit').click() # 点击保存,调用添加用例接口,接口按照修改后的入参发起请求。
    page.wait_for_timeout(10000)
    # ---------------------
    context.close() # 上下文关闭时保存录屏
    browser.close()

with sync_playwright() as playwright:
    run(playwright)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

以上脚本中,用例的标题输入12345,但是经过route修改后,实际发起添加用例的请求时,标题被改为了654321
抓包看不到标题参数被修改,但是实际添加成功的用例标题是654321
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/977326
推荐阅读
相关标签
  

闽ICP备14008679号