日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

postmethod 设置request body utf-8_Cypress系列(62) request() 命令详解

發(fā)布時(shí)間:2024/4/18 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 postmethod 设置request body utf-8_Cypress系列(62) request() 命令详解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

點(diǎn)擊上方藍(lán)字

給一個(gè)關(guān)注吧

作用

發(fā)起一個(gè) HTTP 請(qǐng)求

語(yǔ)法格式

cy.request(url)cy.request(url, body)cy.request(method, url)cy.request(method, url, body)cy.request(options)

參數(shù)說(shuō)明

url

請(qǐng)求 URL

?cy.request()?在?cy.visit()?后面

// 先訪問(wèn)某個(gè) urlcy.visit('http://localhost:8080/app')// 請(qǐng)求 url 是 http://localhost:8080/users/1.jsoncy.request('users/1.json')

設(shè)置了 baseUrl,且 cy.request() 在 cy.visit() 前面

cypress.json

// cypress.json{ "baseUrl": "http://localhost:1234"}

測(cè)試代碼

// url 是 http://localhost:1234/seed/admincy.request('seed/admin')

備注

如果 cypress 無(wú)法確定 host,它將拋出錯(cuò)誤

body

  • 請(qǐng)求正文,不同接口內(nèi)容,body 會(huì)有不同的形式

  • Cypress 設(shè)置了 Accepts 請(qǐng)求頭,并通過(guò) encoding 選項(xiàng)序列化響應(yīng)體

method

請(qǐng)求方法,沒(méi)啥好說(shuō)的,默認(rèn)是 GET

options

GET 請(qǐng)求的栗子

context('get請(qǐng)求', function () { it('默認(rèn)訪問(wèn)方式', function () { cy.request('http://www.helloqa.com') }); it('使用 options', function () { cy.request({ method: 'get', url: 'http://www.helloqa.com' }) }); // .request() 常常和別名 .as() 一起使用,用來(lái)進(jìn)行接口返回值的斷言 it('真實(shí)測(cè)試', function () { cy.request({ method: 'get', url: 'https://www.helloqa.com' }).as('comments') cy.get('@comments') .then((response) => { expect(response.status).to.be.eq(200) }) });})

測(cè)試結(jié)果

.request() 返回值

包含以下屬性

  • status

  • body

  • headers

  • duration

.request() 別名后通過(guò) .get() 的返回值

?包含以下屬性

  • status

  • body

  • headers

  • duration

  • statusText

  • allRequestResponses

  • requestHeaders

  • redirects

  • isOkStatusCode

使用 .request() 代替 .visit() 的栗子

官方有那么一句話

有時(shí)候,cy.request() 測(cè)試頁(yè)面的內(nèi)容要比 cy.visit() 更快,然后等待整個(gè)頁(yè)面加載所有資源

通過(guò) .visit() 測(cè)試需要登錄才能訪問(wèn)的頁(yè)面

const username = 'jane.lane'const password = 'password123'it('使用 visit', function () { // 相當(dāng)于 UI 界面操作 cy.visit('')  // 登錄操作 cy.get("input[name=username]").type(username) cy.get("input[name=password]").type(password) cy.get("form").submit() // 會(huì)跳轉(zhuǎn)至需要登錄才能訪問(wèn)的頁(yè)面????cy.get("h1").should("contain",?"jane.lane")?});

測(cè)試結(jié)果

通過(guò) .request() 測(cè)試需要登錄才能訪問(wèn)的頁(yè)面

it('request代替visit', function () { // 通過(guò)接口層面去訪問(wèn)頁(yè)面 // 請(qǐng)求頁(yè)面 cy.request('/login') .its('body') .should('include', '

In this recipe we:

') // 登錄請(qǐng)求 cy.request({ method: 'post', url: '/login', // 表單格式的請(qǐng)求 form: true, body: { username: 'jane.lane', password: 'password123' } }) // 訪問(wèn)需要登錄之后才能訪問(wèn)的頁(yè)面 cy.request('/dashboard') .its('body') .should('include', 'jane.lane')});

測(cè)試結(jié)果

官方重點(diǎn)

通常,一旦對(duì)登錄進(jìn)行了適當(dāng)?shù)膃2e測(cè)試,就沒(méi)有理由繼續(xù)使用?cy.visit()?登錄并等待整個(gè)頁(yè)面加載所有關(guān)聯(lián)的資源,然后再運(yùn)行其他命令,這樣做可能會(huì)減慢我們整個(gè)測(cè)試套件的速度

輪詢發(fā)出請(qǐng)求的栗子

背景

  • 當(dāng)輪詢服務(wù)器以獲取可能需要一段時(shí)間才能完成的響應(yīng)時(shí),此功能很有用

  • 如何做:創(chuàng)建一個(gè)遞歸函數(shù)

測(cè)試代碼

function req() { cy .request('/') .then((resp) => { if (resp.status === 200) // 請(qǐng)求成功則退出輪詢 return // 遞歸 req() })}context('輪詢r(jià)equest', function () { it('默認(rèn)訪問(wèn)方式', function () { cy.visit('http://localhost:7077/') // 輪詢前的操作 cy.get("form").click() // 輪詢請(qǐng)求 .then(() => { req() }) });})

關(guān)于 .request() 的注意事項(xiàng)

Debugging

  • 通過(guò)?.request()?發(fā)出的請(qǐng)求不會(huì)出現(xiàn)在開發(fā)者工具(F12)網(wǎng)絡(luò)一欄中

  • Cypress?實(shí)際上并未從瀏覽器發(fā)出XHR請(qǐng)求

  • 實(shí)際上是從 Cypress Test Runner(在Node中)發(fā)出HTTP請(qǐng)求

  • 因此,不會(huì)在開發(fā)人員工具中看到該請(qǐng)求

Cookie

  • 通過(guò)?.request()??發(fā)出的請(qǐng)求,Cypress 會(huì)自動(dòng)發(fā)送和接收 Cookie

  • 在發(fā)送 HTTP 請(qǐng)求之前,如果請(qǐng)求來(lái)自瀏覽器,Cypress 會(huì)自動(dòng)附加本應(yīng)附加的 Cookie

  • 此外,如果響應(yīng)具有 Set-Cookie 標(biāo)頭,則這些標(biāo)頭將自動(dòng)在瀏覽器 Cookie 上重新設(shè)置

  • 換句話說(shuō),cy.request() 透明地執(zhí)行所有基礎(chǔ)功能,就好像它來(lái)自瀏覽器一樣

END

公眾號(hào)ID:xiaopoloyy小菠蘿Wechat:FJYpolo小菠蘿測(cè)試交流扣扣群:870155189--------------------------

不好好學(xué)習(xí)|天天不進(jìn)步

Cypress系列(56)- 改造 PageObject 模式

Cypress系列(57)- 使用 Cypress.Commands 完成 Custom Commands 自定義命令

Cypress系列(58)- 數(shù)據(jù)驅(qū)動(dòng)策略

Cypress系列(59)- 測(cè)試運(yùn)行失敗自動(dòng)重試

Cypress系列(60)- 測(cè)試運(yùn)行最佳實(shí)踐

Cypress系列(61)- 環(huán)境變量設(shè)置指南

總結(jié)

以上是生活随笔為你收集整理的postmethod 设置request body utf-8_Cypress系列(62) request() 命令详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。