1. 程式人生 > >Python 接口測試(五)

Python 接口測試(五)

方式 img 思路 tag 會有 地址 api接口 pytho 自己

五:使用python進行組織編寫接口測試用例

接口測試其實就是幾個步驟。

  1. 拿到接口的url地址
  2. 查看接口是用什麽方式發送
  3. 添加請求頭,請求體
  4. 發送查看返回結果,校驗返回結果是否正確

明白了接口測試的測試步驟,那麽我們就可以來組織我們的代碼。

技術分享
import requests

# 接口的url
url = "http://fanyi.baidu.com/v2transapi"

# 接口的參數
params = {
    "from":"en",
    "to":"zh", 
    "query": "test"
}

r = requests.request("post", url, params=params)

# 打印返回結果
print(r.text)

# 為了讓結果看的更加清楚一點,我取來翻譯的字段
import json
d = json.loads(r.text)
print(d[‘liju_result‘][‘tag‘])
技術分享

結果:

[‘試驗‘, ‘測驗‘, ‘考驗‘, ‘化驗‘, ‘考查‘, ‘受試驗‘, ‘受測驗‘, ‘受考驗‘, ‘測得結果‘]

(結果很長,截取最後的)

修改參數再次請求;

技術分享
import requests

url = "http://fanyi.baidu.com/v2transapi"
params = {
    "from":"en",
    "to":"zh",
    "query": "study" #
}
r = requests.request("post", url, params=params)

import json
d = json.loads(r.text)
print(d[‘liju_result‘][‘tag‘])
技術分享

結果:

[‘學習‘, ‘研究‘, ‘課題‘, ‘書房‘, ‘結論‘, ‘考慮‘, ‘沈思‘, ‘努力‘, ‘想出‘]

ps:我們看看利用工具測試該接口

技術分享

接下來我們來引入unittest庫優化代碼:

技術分享
import requests,unittest,json
class Testbaiduapi(unittest.TestCase):
    def setUp(self):
        url = "http://fanyi.baidu.com/v2transapi"
    def testzhen(self):
        params = {
        "from":"en",
        "to":"zh",
        "query": "study" #
    }
        url = "http://fanyi.baidu.com/v2transapi"
        r = requests.request("post", url, params=params)
        r=json.loads(r.text)
        assert  u‘學習‘ in r[‘liju_result‘][‘tag‘]
    def testzhen1(self):
        params = {
        "from":"en",
        "to":"h",
        "query": "stud" #
 }
        url = "http://fanyi.baidu.com/v2transapi"
        r = requests.request("post", url, params=params)
        r=json.loads(r.text)
        assert  u‘學習‘ in r[‘liju_result‘][‘tag‘]
    def tearDown(self):
        pass
if __name__==‘__main__‘:
    unittest.main(verbosity=2)
技術分享

結果:

技術分享

在python中,提供了HTMLTestRunner.py來生成測試報告,把該文件下載後,直接放到python安裝文件的lib的目錄下,

就可以導入該模塊使用了,見該實現的代碼:

技術分享
import requests,unittest,json,HTMLTestRunner
class Testbaiduapi(unittest.TestCase):
    def setUp(self):
        url = "http://fanyi.baidu.com/v2transapi"
    def testzhen(self):
        params = {
        "from":"en",
        "to":"zh",
        "query": "study" #
    }
        url = "http://fanyi.baidu.com/v2transapi"
        r = requests.request("post", url, params=params)
        r=json.loads(r.text)
        assert  u‘學習‘ in r[‘liju_result‘][‘tag‘]
    def testzhen2(self):
        params = {
        "from":"en",
        "to":"h",
        "query": "stud" #
    }
        url = "http://fanyi.baidu.com/v2transapi"
        r = requests.request("post", url, params=params)
        r=json.loads(r.text)
        assert  u‘學‘ in r[‘liju_result‘][‘tag‘]
    def tearDown(self):
        pass
if __name__==‘__main__‘:
    report_dir= r‘s.html‘
    re_open= open(report_dir,‘wb‘)
    suite=unittest.TestLoader().loadTestsFromTestCase(Testbaiduapi)
    runner=HTMLTestRunner.HTMLTestRunner(
        stream=re_open,
        title=u‘百度翻譯api接口測試報告‘,
        description=u‘百度翻譯api接口測試詳情‘
    )
    runner.run(suite)
技術分享

執行後,會在當前目錄下生成測試報告,截圖如下:

技術分享

其他接口的測試方法也是這個思路,

作者寄語:

前進的道路我們充滿著迷茫,

前進的每一步我們都會有收獲。

路在腳下,我們決定不了我們的出身,但是我們可以努力改變我們未來。

告別昨天失敗的自己,努力拼搏今天,成就美好明天

padf文檔分享:https://pan.baidu.com/s/1gfuXkpP

Python 接口測試(五)