最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)接口自動(dòng)化測(cè)試的方法詳解

 更新時(shí)間:2024年08月26日 09:33:59   作者:測(cè)試雜貨鋪  
Python接口自動(dòng)化測(cè)試是一種高效、可重復(fù)的軟件質(zhì)量驗(yàn)證方法,尤其在現(xiàn)代軟件開(kāi)發(fā)中,它已經(jīng)成為不可或缺的一部分,本文將深入探討如何使用Python進(jìn)行接口自動(dòng)化測(cè)試,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下

一、環(huán)境搭建

  • python +unittest+ requests實(shí)現(xiàn)http請(qǐng)求的接口自動(dòng)化
  • Python的優(yōu)勢(shì):語(yǔ)法簡(jiǎn)潔優(yōu)美, 功能強(qiáng)大, 標(biāo)準(zhǔn)庫(kù)跟第三方庫(kù)灰常強(qiáng)大,建議大家事先了解一下Python的基礎(chǔ);
  • unittest是python的標(biāo)準(zhǔn)測(cè)試庫(kù),相比于其他測(cè)試框架是python目前使用最廣的測(cè)試框架。
  • Requests 是用Python語(yǔ)言編寫(xiě),基于urllib,采用Apache2 Licensed開(kāi)源協(xié)議的HTTP 庫(kù)。它比urllib 更加方便,可以節(jié)約我們大量的工作,完全滿足HTTP 測(cè)試需求。
  • 在CMD命令行執(zhí)行命令加載request第三方庫(kù):pip install requests
  •  python -m pip install pillow

二、方法

  • pip安裝requests第三方庫(kù),然后引入:import requests
  • 引入json標(biāo)準(zhǔn)庫(kù),美化json輸出:import json
  • 調(diào)用requests庫(kù)中的post方法,會(huì)給出所需要的參數(shù),傳入上面定義的url和data參數(shù),運(yùn)行.py文件就執(zhí)行了post請(qǐng)求。
import requests    #pip安裝requests第三方庫(kù),然后引入
import json             #引入json標(biāo)準(zhǔn)庫(kù),美化json輸出
  
url = 'http://***/account/login'
data = {
        "username":"***01",
        "password":"password",
}
 
result = requests.post(url,data).json()  #以json格式輸出
print(result)
result = requests.post(url,data).text     #以源碼形式輸出
print(result)
import requests#引入requests第三方包
import json#引入json包
 
class Login():
    def httprequests(self,url,data,method):#self為類函數(shù)的默認(rèn)函數(shù),放在第一位
        if method=="post":
            res=requests.post(url,data)#post請(qǐng)求方法
        else:
            res=requests.get(url,data)#get請(qǐng)求方法
        print(res.text)#以源碼形式輸出
        print(res.json())#以json形式輸出
 
#創(chuàng)建實(shí)例,調(diào)用函數(shù)
test1=Login()
login_url='https://www.******/pc/member/sign'
login_data={"flag":"mobile",
            "password":"f5e05a41724115d076bfb1fd2bd9613e",
            "mobile_phone":"136********"}
login_method='post'
test1.httprequests(login_url,login_data,login_method)

三、單元測(cè)試

  • 什么是單元測(cè)試:?jiǎn)卧獪y(cè)試就是對(duì)代碼進(jìn)行測(cè)試,本質(zhì)就是對(duì)類或者函數(shù)進(jìn)行測(cè)試
  • 什么時(shí)候進(jìn)行單元測(cè)試:代碼完成后就開(kāi)始進(jìn)行測(cè)試
  • 由誰(shuí)進(jìn)行單元測(cè)試:一般有開(kāi)發(fā)自己進(jìn)行測(cè)試
  • 目的:盡可能早的介入測(cè)試,發(fā)現(xiàn)底層代碼中的問(wèn)題
  • 方法:使用unittest方法包:import unittest  

(1)先創(chuàng)建一個(gè)加法類-Mathmethod,存入Mathmethod.py文件

#定義一個(gè)數(shù)學(xué)加法類
class Mathmethod():
    def add(self,a,b):
        return(a+b)
    def sub(self,a,b):
        return(a-b)

(2)然后創(chuàng)建測(cè)試用例-TestMathmethod

import unittest
from HTMLTestRunner import HTMLTestRunner
from requesttest.math.Mathmethod import Mathmethod  # 引入Mathmethod模塊
#import HTMLTestRunnerNew
 
 
class TestMathmethod(unittest.TestCase):#創(chuàng)建TestMathmethod類,繼承unittest.TestCase方法
    #編寫(xiě)測(cè)試用例,函數(shù)命名必須以test_開(kāi)頭
    def test_add_two_num(self):
        res=Mathmethod().add(3,6)
        print('兩個(gè)數(shù)值相加結(jié)果是',res)
        self.assertEqual(9,res)
 
    def test_sub_two_num(self):
        res=Mathmethod().sub(9,8)
        print('兩個(gè)數(shù)值相減結(jié)果是', res)
        self.assertEqual(1,res)
 

(3)創(chuàng)建測(cè)試報(bào)告-使用HTML方法

import unittest
from HTMLTestRunner import HTMLTestRunner
from requesttest.math.TestMathmethod import TestMathmethod
 
 
testunit=unittest.TestSuite()#生成單元測(cè)試流程
testunit.addTest(TestMathmethod("test_add_two_num"))
testunit.addTest(TestMathmethod("test_sub_two_num"))#加載一條測(cè)試用例
fp=open('D:\\test\\unittest1.html','wb')#創(chuàng)建測(cè)試報(bào)告,以寫(xiě)的方式存入某個(gè)路徑
runner=HTMLTestRunner(
    stream=fp,
    title="加法測(cè)試",
    description="用例執(zhí)行情況:"
    )
runner.run(testunit)
fp.close()

(4)也可使用txt的形式輸出測(cè)試報(bào)告

import unittest
from HTMLTestRunner import HTMLTestRunner
from requesttest.math.TestMathmethod import TestMathmethod
 
suite=unittest.TestSuite()#收集測(cè)試用例
loader=unittest.TestLoader()#加載測(cè)試用例-按照類的方法添加一個(gè)類下面的所有測(cè)試用例
suite.addTest(loader.loadTestsFromTestCase(TestMathmethod))
file=open('test_case.txt','w+')#測(cè)試報(bào)告的存儲(chǔ)路徑和測(cè)試報(bào)告的讀寫(xiě)方式
runner=unittest.TextTestRunner(
    stream=file,
    verbosity=2,#測(cè)試報(bào)告的詳細(xì)程度
)
runner.run(suite)#執(zhí)行測(cè)試用例
test_add_two_num (requesttest.math.TestMathmethod.TestMathmethod) ... ok
test_sub_two_num (requesttest.math.TestMathmethod.TestMathmethod) ... ok
 
----------------------------------------------------------------------
Ran 2 tests in 0.000s
 
OK

(5)生成測(cè)試報(bào)告方法三(HTML的方式)

 
import unittest
from HTMLTestRunner import HTMLTestRunner
from requesttest.math.TestMathmethod import TestMathmethod
 
suite=unittest.TestSuite()#收集測(cè)試用例
loader=unittest.TestLoader()#加載測(cè)試用例
suite.addTest(loader.loadTestsFromTestCase(TestMathmethod))
 
fp=open('D:\\test\\unittest1.html','wb')#創(chuàng)建測(cè)試報(bào)告,以寫(xiě)的方式存入某個(gè)路徑
runner=HTMLTestRunner(
    stream=fp,
    title="加法測(cè)試",
    description="用例執(zhí)行情況:"
    )
runner.run(suite)
fp.close()

以上就是Python實(shí)現(xiàn)接口自動(dòng)化測(cè)試的方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Python接口自動(dòng)化測(cè)試的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

新建县| 石阡县| 平顺县| 阜南县| 本溪市| 金华市| 临清市| 乐昌市| 洛川县| 井陉县| 阿荣旗| 海林市| 兰西县| 衢州市| 开鲁县| 沧源| 南宫市| 克东县| 诏安县| 滨海县| 涡阳县| 盘山县| 定兴县| 酒泉市| 苗栗市| 马公市| 金川县| 都昌县| 图片| 南宁市| 玉林市| 资溪县| 赞皇县| 和平县| 集贤县| 泸定县| 呼玛县| 绵阳市| 满城县| 菏泽市| 沙湾县|