欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python接口自動化測試數(shù)據(jù)和代碼分離解析

 更新時間:2021年09月08日 08:59:03   作者:一名小測試  
代碼的可維護性除了代碼冗余之外還有就是數(shù)據(jù)盡量不要和代碼摻雜在一起,因為閱讀起來會非常的凌亂;數(shù)據(jù)分離能更好的增加代碼可讀性和可維護性,也能更好的二次修改使用

common中存放的是整個項目中公共使用的封裝方法

從工程目錄上可以看到區(qū)分

datas中專門存放測試數(shù)據(jù)(yml文件)

cases中專門集中存放測試用例 ...

數(shù)據(jù)分離的第一步先找到工程項目路徑

# -*- encoding: utf-8 -*-
"""
@__Software__: PyCharm
@__File__: osPath.py
@__Date__: 2021/6/14 21:08
"""
import os  
# 獲取項目的根目錄,apiTest層
FILE = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
# 獲取存放測試數(shù)據(jù)的文件夾
DATAS = os.path.join(FILE, 'datas')
print(DATAS)
 F:\project_gitee\Test\apiTest\datas 
Process finished with exit code 0

運行結(jié)果可以清晰看到,已經(jīng)找到存放數(shù)據(jù)的文件夾路徑并拼接成功 ...

os模塊不熟悉可參考菜鳥教程

數(shù)據(jù)分離的第二步封裝一個讀取yml文件的函數(shù)或類方法

這里就先寫一個函數(shù)把

首先要先安裝yml

 pip install pyaml

再導(dǎo)入包,然后再進行封裝

# -*- encoding: utf-8 -*-
"""
@__Software__: PyCharm
@__File__: readData.py
@__Date__: 2021/6/14 21:07
""" 
import os
import yaml
from common import osPath as sp 
def read_yml(file):
    with open(file, mode='r', encoding='utf-8') as read_data:
        results = yaml.load(read_data, Loader=yaml.FullLoader)
        return results
print(read_yml(os.path.join(sp.DATAS, 'test_data.yml')))
 
{'test_data': [[{'type': 1}, {'reason': '查詢成功!'}], [{'type': 2}, {'reason': '查詢成功!'}], [{'type': 3}, {'reason': '查詢成功!'}]]} 
Process finished with exit code 0

讀取yml的函數(shù)寫完以后,要記得測試下是否滿足自己需要的功能;從結(jié)果來看滿足我目前需要功能 ...

yaml語法不熟悉的也可以參考菜鳥教程

數(shù)據(jù)分離的第三步測試用例中引入數(shù)據(jù)并運行

# -*- encoding: utf-8 -*-
"""
@__Software__: PyCharm
@__File__: test_example.py
@__Date__: 2021/6/13 19:00
"""
import os
import pytest
import requests
from common import osPath as sp
from common.readData import read_yml
class TestExample:
    s = requests.Session()
    data = read_yml(os.path.join(sp.DATAS, 'test_data.yml')) 
    @pytest.mark.parametrize("test_data, expected", data['test_data'])
    def test_example(self, test_data, expected):
        with self.s as s:
            url = "http://apis.juhe.cn/fapig/euro2020/schedule?key=9d0dfd9dbaf51de283ee8a88e58e218b"
            response = s.get(url, params=test_data)
            print(response.json())
             assert response.json()["reason"] == expected["reason"] 
if __name__ == '__main__':
    pytest.main(["-v", "-s", "test_example"])
Launching pytest with arguments F:/project_gitee/Test/apiTest/cases/test_example.py in F:\project_gitee\Test\apiTest\cases
============================= test session starts ============================ 
collecting ... collected 3 items
test_example.py::TestExample::test_example[test_data0-expected0] 
test_example.py::TestExample::test_example[test_data1-expected1] 
test_example.py::TestExample::test_example[test_data2-expected2] 
 ============================== 3 passed in 0.66s ==============================

data['test_data']是字典取值,取key為test_data的value值 ...

從返回的結(jié)果可以清晰看到,3 passed,且用時0.66s ...

至此,測試數(shù)據(jù)和代碼分離完成 ...

以上就是python接口自動化測試數(shù)據(jù)和代碼分離解析的詳細內(nèi)容,更多關(guān)于python接口自動化測試資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解Python調(diào)用系統(tǒng)命令的六種方法

    詳解Python調(diào)用系統(tǒng)命令的六種方法

    這篇文章主要介紹了詳解Python調(diào)用系統(tǒng)命令的六種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • python3第三方爬蟲庫BeautifulSoup4安裝教程

    python3第三方爬蟲庫BeautifulSoup4安裝教程

    這篇文章主要為大家詳細介紹了python3第三方爬蟲庫BeautifulSoup4的安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Python中正則表達式詳解

    Python中正則表達式詳解

    Python 的 re 模塊(Regular Expression 正則表達式)提供各種正則表達式的匹配操作,Python 會將正則表達式轉(zhuǎn)化為字節(jié)碼,利用 C 語言的匹配引擎進行深度優(yōu)先的匹配。
    2017-05-05
  • Python虛擬環(huán)境virtualenv安裝的詳細教程保姆級(Windows和linux)

    Python虛擬環(huán)境virtualenv安裝的詳細教程保姆級(Windows和linux)

    本文詳細介紹了如何在Linux和Windows系統(tǒng)上安裝和配置virtualenv虛擬環(huán)境,包括依賴包安裝、系統(tǒng)環(huán)境變量設(shè)置、激活和退出環(huán)境,以及在PyCharm中的應(yīng)用和導(dǎo)出依賴文件,需要的朋友可以參考下
    2024-09-09
  • OpenCV半小時掌握基本操作之分水嶺算法

    OpenCV半小時掌握基本操作之分水嶺算法

    這篇文章主要介紹了OpenCV基本操作之分水嶺算法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Python網(wǎng)絡(luò)編程 Python套接字編程

    Python網(wǎng)絡(luò)編程 Python套接字編程

    這篇文章主要為大家詳細介紹了Python網(wǎng)絡(luò)編程的相關(guān)資料,Python套接字編程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • python+pytest接口自動化之日志管理模塊loguru簡介

    python+pytest接口自動化之日志管理模塊loguru簡介

    python中有一個用起來非常簡便的第三方日志管理模塊--loguru,不僅可以避免logging的繁瑣配置,而且可以很簡單地避免在logging中多進程多線程記錄日志時出現(xiàn)的問題,甚至還可以自定義控制臺輸出的日志顏色,接下來我們來學(xué)習(xí)怎么使用loguru模塊進行日志管理
    2022-05-05
  • Python中列表的各種操作方法詳解

    Python中列表的各種操作方法詳解

    這篇文章主要介紹了Python中列表的各種操作方法詳解,列表都可以進行的操作包括索引、切片、加、乘、檢查成員,此外,Python 已經(jīng)內(nèi)置確定序列的長度以及確定最大和最小的元素的方法,需要的朋友可以參考下
    2023-08-08
  • Pycharm安裝Qt Design快捷工具的詳細教程

    Pycharm安裝Qt Design快捷工具的詳細教程

    這篇文章主要介紹了Pycharm安裝Qt Design快捷工具,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Python tcp傳輸代碼實例解析

    Python tcp傳輸代碼實例解析

    這篇文章主要介紹了Python tcp傳輸代碼實例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03

最新評論