成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python+pytest接口自動(dòng)化主要參數(shù)關(guān)系

89542767 / 586人閱讀

  文章主要是詳細(xì)介紹了python+pytest接口自動(dòng)化技術(shù)主要參數(shù)關(guān)系,主要參數(shù)關(guān)系,又叫插口關(guān)系,即插口之間產(chǎn)生參數(shù)聯(lián)絡(luò)或依靠,大量相關(guān)知識(shí)必須的小伙伴們可可以了解一下


  序言


  那么今天,小編想跟大伙兒來(lái)講講python+pytest接口自動(dòng)化測(cè)試主要參數(shù)關(guān)系,小編那邊就不多說(shuō)了廢話了,大家可以直接直入主題。


  一、什么叫主要參數(shù)關(guān)系?


  主要參數(shù)關(guān)系,又叫插口關(guān)系,即插口之間產(chǎn)生參數(shù)聯(lián)絡(luò)或依靠。在做完某一作用服務(wù)時(shí),有時(shí)候必須按序要求好幾個(gè)插口,這時(shí)候在一些插口中間可能存有關(guān)聯(lián)性。例如:B接口某一或一些請(qǐng)求參數(shù)是由啟用A插口獲得的,即必須要先要求A插口,從A接口回到信息中取得所需要的字段值,在要求B插口時(shí)做為請(qǐng)求參數(shù)傳到。


  二、有什么情景?


  比較常見(jiàn)的情景其一就是:要求登陸插口后掌握到token值,后面別的接口請(qǐng)求的時(shí)候需要將token做為請(qǐng)求參數(shù)傳到。


  又比如下單-->支付場(chǎng)景,啟用下單插口形成訂單信息之后回到訂單編號(hào),訂單編號(hào)發(fā)送給支付平臺(tái)開(kāi)展付款。


  三、主要參數(shù)關(guān)系情景


  以比較常見(jiàn)的網(wǎng)絡(luò)購(gòu)物為例子,相對(duì)應(yīng)的情景及要求我們能大概簡(jiǎn)單化如下所示(可想到淘寶購(gòu)買(mǎi)過(guò)程):


  客戶在加入購(gòu)物車(chē)挑選產(chǎn)品點(diǎn)一下【去清算】進(jìn)到下單頁(yè),下單頁(yè)點(diǎn)一下【下單】這時(shí)候首先會(huì)要求下單插口創(chuàng)建訂單


  隨后會(huì)用建立訂單去要求獲得付款憑證插口,這一插口會(huì)喚起支付頁(yè)面,其實(shí)就是輸入支付密碼的支付頁(yè)面


  鍵入交易密碼之后要求金融服務(wù)的支付平臺(tái)開(kāi)展具體付款,付款得到的結(jié)果會(huì)回到給要求方,告之是不是交易成功


  這一環(huán)節(jié)中涉及的插口實(shí)際上都是有關(guān)系的,大家需要對(duì)整個(gè)過(guò)程進(jìn)行測(cè)試那就需要按順序調(diào)用這所有的一切涉及的插口。


  但是這里我們只需搞明白主要參數(shù)關(guān)系,那樣下列單插口和獲得付款憑證插口為例子,舉例子就行了,即先要求下單插口形成訂單編號(hào),先拿這一訂單編號(hào)去要求獲得付款憑證插口,才可以喚起支付頁(yè)面然后進(jìn)行付款。


  下單接口如下:


  接口地址:<服務(wù)器>/trade/order/purchase


  請(qǐng)求類型:post


  請(qǐng)求參數(shù):


  {
  "goodsId":10,//商品id
  "goodsSkuId":33,//sku id
  "num":2,//購(gòu)買(mǎi)數(shù)量
  "tradePromotion":{//選擇的優(yōu)惠項(xiàng)
  "type":1,//類型<1:優(yōu)惠券>
  "promotionId":1//優(yōu)惠id
  }
  }
  返回值data:
  {
  "code":0,
  "msg":"成功",
  "data":{
  "tradeNo":"0020220116204344962706666"//交易訂單號(hào)
  },
  "t":1639658625474
  }
  獲取支付憑證接口如下:
  接口地址:<服務(wù)器>/pay/pre/consum
  請(qǐng)求類型:post

  請(qǐng)求參數(shù):


  {
  "orderNo":"0020220116204344962706666",//交易訂單號(hào)
  "product":"alipayWapClient"//支付渠道<alipayWapClient:支付寶手機(jī)網(wǎng)頁(yè)支付>
  }
  {
  "orderNo":"0020220116204344962706666",//交易訂單號(hào)
  "product":"alipayWapClient"//支付渠道<alipayWapClient:支付寶手機(jī)網(wǎng)頁(yè)支付>
  }
  返回值data:
  {
  "code":0,
  "msg":"成功",
  "data":{
  "payNo":"123213213219379213",
  "certificate":"<form name="punchout_form"method="post"action="https://openapi.alipay.com/gateway.do?charset=UTF-8&method=alipay.trade.wap.pay&sign=aTKlfEnYgR7x9xs1Eyjipo0S%2BFtQ6AKu9d%2Brb7iieMThz2Dq7zp4h8QH4lelTKovOloT%2FPiNXR5miwKgOWW3K6pl0TFO5XX5NSZNBmU%2BPd5ogeo0YT0vCqWUM60rqbYLNtZmvyx%2BAR4Z2SOnqs0CYqVIbZAhpn1Bd5HsdcCCYVgsgOdbEE60Cfu3LG3Z%2FQ0GQIdW24uTyr%2BojRc25ipOC9NIYwtba8UjRw18Z3e7sj75qoIg%2FipICH7FCJBJEdlgBGlNxIjKzhYj4OBg93D&return_url=https%3A%2F%2Fblog.csdn.net%2Fa032788aotify_url=http%3A%2F%2F82.157.145.132%3A8089%2Ftest%2Fnotify%2Fgateway&version=1.0&app_id=2021001105644746&sign_type=RSA2&timestamp=2021-150&alipay_sdk=alipay-sdk-java-4.9.5.ALL&format=json">n<input type="hidden"name="biz_content"value="{"time_expire":"2022-12-31 22:00:00","out_trade_no":"123213213219379213","total_amount":0.01,"subject":"測(cè)試商品","product_code":"QUICK_WAP_WAY"}">n<input type="submit"value="立即支付"style="display:none">n</form>n<script>document.forms[0].submit();</script>"
  },
  "t":1639659171031
  }


  在其中orderNo字段名使這倆插口關(guān)系起來(lái)。每次產(chǎn)生的訂單編號(hào)都是一樣的,因此在檢測(cè)這樣的場(chǎng)景時(shí),那就需要使這倆接口主要參數(shù)開(kāi)展關(guān)系,才走通。


  四、腳本編寫(xiě)


  那在pytest架構(gòu)的功能測(cè)試中,主要參數(shù)關(guān)系能夠如何解決呢?在這里帶來(lái)二種構(gòu)思,如下所示:


  依據(jù)需求場(chǎng)景的啟用時(shí)序圖,在測(cè)試用例中按序調(diào)用接口


  將依靠的插口編為fixture函數(shù)公式,并用yield回到下一個(gè)插口所需要的主要參數(shù)


  1、在用例中按順序調(diào)用


  代碼示例如下:


  import requests
  import json
  import pytest
  def test_order_pay():
  '''
  創(chuàng)建訂單->獲取支付憑證,調(diào)起支付界面
  :return:
  '''
  #先調(diào)用下單接口生成訂單
  url_order="https://gouwu.com/trade/order/purchase"
  data_order={
  "goodsId":10,
  "goodsSkuId":33,
  "num":2,
  "tradePromotion":{
  "type":1,
  "promotionId":1
  },
  "tradeDirectionArticle":{
  "articleId":1
  }
  }
  res_order=requests.post(url=url_order,json=data_order).text
  tradeNo=json.loads(res_order)["tradeNo"]
  #再請(qǐng)求獲取支付憑證接口
  url_pay="https://gouwu.com/pay/pre/consum"
  data_pay={
  "orderNo":tradeNo,#tradeNo通過(guò)下單接口獲取
  "product":"alipayWapClient"
  }
  res_pay=requests.post(url=url_pay,json=data_pay).text
  res_pay=json.loads(res_pay)
  #斷言
  assert res_pay["code"]==0
  assert res_pay["data"]["payNo"]
  assert res_pay["data"]["certificate"]
  if __name__=='__main__':
  pytest.main()


  上面的代碼只是流水式的進(jìn)行調(diào)用,我們還可以先將每個(gè)接口請(qǐng)求封裝成多帶帶的函數(shù),在測(cè)試用例中只需按照順序調(diào)用這些函數(shù)即可,這個(gè)我們會(huì)在后續(xù)的文章中進(jìn)行說(shuō)明。


  2、使用Fixture函數(shù)


  定義Fixture函數(shù),代碼示例如下:


  pytest.fixture()
  def get_order():
  '''
  請(qǐng)求下單接口,創(chuàng)建訂單
  :return:
  '''
  url_order="https://gouwu.com/trade/order/purchase"
  data_order={
  "goodsId":10,
  "goodsSkuId":33,
  "num":2,
  "tradePromotion":{
  "type":1,
  "promotionId":1
  },
  "tradeDirectionArticle":{
  "articleId":1
  }
  }
  res_order=requests.post(url=url_order,json=data_order).text
  tradeNo=json.loads(res_order)["tradeNo"]
  yield tradeNo
  在測(cè)試函數(shù)中調(diào)用上面定義的fixture函數(shù),代碼示例如下:
  def test_pay(get_order):
  '''
  下單->支付場(chǎng)景校驗(yàn)
  :param get_order:調(diào)用上面的Fixture函數(shù),函數(shù)名get_order即返回的tradeNo
  :return:
  '''
  url_pay="https://gouwu.com/pay/pre/consum"
  data_pay={
  "orderNo":get_order,#get_order即為上面定義的fixture函數(shù)返回值
  "product":"alipayWapClient"
  }
  res_pay=requests.post(url=url_pay,json=data_pay).text
  res_pay=json.loads(res_pay)
  #斷言
  assert res_pay["code"]==0
  assert res_pay["data"]["payNo"]
  assert res_pay["data"]["certificate"]


  五、總結(jié)


  參數(shù)關(guān)聯(lián)在接口自動(dòng)化測(cè)試中是必然會(huì)遇到的場(chǎng)景,設(shè)計(jì)關(guān)聯(lián)參數(shù)的用例會(huì)直接影響到用例的維護(hù),當(dāng)然這也是在接口自動(dòng)化項(xiàng)目的架構(gòu)設(shè)計(jì)時(shí)就需要考慮的問(wèn)題。


  對(duì)于剛?cè)腴T(mén)的同學(xué)而言,我們需要明白的是,什么是參數(shù)關(guān)聯(lián),以及可以怎樣去處理它


  綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)?lái)幫助

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/130273.html

相關(guān)文章

  • 2021-09-03-接口動(dòng)化-python+requests+pytest+csv+yaml+a

    摘要:本套代碼和邏輯是本人的勞動(dòng)成果,如果有轉(zhuǎn)載需要標(biāo)注,非常適合公司做項(xiàng)目的同學(xué)小白也可以學(xué)哦接口自動(dòng)化項(xiàng)目目錄公共方法的封裝如果不用配置文件可以使用這個(gè)方法進(jìn)行封裝但是有一定的缺陷可以不使用字典。這是在正常的命令行解析之前發(fā)生的。 ...

    李昌杰 評(píng)論0 收藏0
  • 做完動(dòng)化測(cè)試,但別讓不會(huì)匯報(bào)毀了你...

    摘要:前端自動(dòng)化測(cè)試百度搜索功能實(shí)戰(zhàn)可以與結(jié)合生成測(cè)試報(bào)告。以網(wǎng)頁(yè)版本的百度為例,百度首頁(yè)呈現(xiàn)的功能新聞網(wǎng)頁(yè)貼吧知道音樂(lè)圖片視頻地圖等,我們以百度網(wǎng)頁(yè)的搜索功能為例,使用結(jié)合自動(dòng)化測(cè)試框架,完成一個(gè)搜索功能的測(cè)試。 ...

    HelKyle 評(píng)論0 收藏0
  • 2021年軟件測(cè)試工具總結(jié)——單元測(cè)試工具

    摘要:?jiǎn)卧獪y(cè)試框架作為的標(biāo)準(zhǔn)庫(kù),是其他單元測(cè)試框架的基礎(chǔ)??梢院秃团浜鲜褂镁帉?xiě)單元測(cè)試。官網(wǎng)地址單元測(cè)試覆蓋率工具單元測(cè)試中還需要用到代碼覆蓋率工具。代碼覆蓋率統(tǒng)計(jì)工具用來(lái)發(fā)現(xiàn)沒(méi)有被測(cè)試覆蓋的代碼,完善單元測(cè)試的覆蓋率。 在應(yīng)用程序中,單元是具有一個(gè)或多個(gè)輸入和單個(gè)輸出的軟件中最小可測(cè)試部分。單元...

    qingshanli1988 評(píng)論0 收藏0
  • 帶你深入理解動(dòng)化測(cè)試框架Pytest的配置文件!

    摘要:其中用到編程等,還需要花更多的精力去深入學(xué)習(xí),當(dāng)每項(xiàng)技能都能掌握到一定深度,才能稱為一個(gè)完整的知識(shí)體系。 都有哪些種類的配置文件 pytest.ini:pytes...

    wayneli 評(píng)論0 收藏0
  • python+pytest動(dòng)化技術(shù)測(cè)試函數(shù)測(cè)試類測(cè)試標(biāo)準(zhǔn)的封裝形式

      本文關(guān)鍵闡述了python+pytest自動(dòng)化技術(shù)測(cè)試函數(shù)測(cè)試類測(cè)試標(biāo)準(zhǔn)的封裝形式,文章內(nèi)容緊扣主題開(kāi)展詳盡的基本介紹,具有很強(qiáng)的實(shí)用價(jià)值,務(wù)必的朋友可以學(xué)習(xí)一下  序言  那么今天,我想跟大家聊聊python+pytest接口自動(dòng)化里將編碼開(kāi)展封裝形式,只有把測(cè)試程序開(kāi)展封裝形式,才會(huì)被測(cè)試框架鑒別實(shí)行?! ±鐔为?dú)插口要求編碼如下所示:  importrequests   headers=...

    89542767 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<