本套代碼和邏輯 是本人的勞動成果,如果有轉載需要標注,
非常適合公司做專案的同學!!!小白也可以學哦!
- 介面自動化-python+requests+pytest+csv+yaml
1.專案目錄

2.公共方法的封裝

2.1如果不用組態檔 可以使用這個方法進行封裝–但是有一定的缺陷!!!!
import requests
METHODS = ['GET', 'POST', 'HEAD', 'TRACE', 'PUT', 'DELETE', 'OPTIONS', 'CONNECT', 'PATCH']
# 可以不使用----
class HTTPClient (object):
def __init__(self, url, method='GET', headers=None, cookies=None):
"""headers: 字典, 例:headers={'Content_Type':'text/html'},cookies也是字典,"""
self.url = url
self.session = requests.session ()
self.method = method.upper ()
if self.method not in METHODS:
raise Exception ('不支持的method:{0},請檢查傳入引數!'.format (self.method))
self.set_headers (headers)
self.set_cookies (cookies)
def set_headers(self, headers):
if headers:
self.session.headers.update (headers)
def set_cookies(self, cookies):
if cookies:
self.session.cookies.update (cookies)
def send(self, params=None, data=None, **kwargs):
# urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
response = self.session.request (method=self.method, url=self.url, params=params, data=data, verify=False,
**kwargs)
response.encoding = 'utf-8'
# logger.debug('{0} {1}'.format(self.method, self.url))
# logger.debug('請求成功: {0} {1}'.format(response, response.text))
return response
2.2為什么要用yaml去做全域資料的配置
看我博客yaml的好處 https://www.cnblogs.com/zsplovezsp/p/12443036.html
3.測驗用例和測驗資料的格式


4.其他的就很簡單了就不做,描述了–如果有想學python和測驗開發,測驗自動化的可以多關注一下
5.pytest常用的方法
pytest常用的方法和原理
1.pytest的原理
pytest插件基于pluggy模塊;pluggy有三個重要概念:HookspecMarker(用來定義hook函式),HookimplMarker(用來實作鉤子函式完成插件的邏輯)和PluginManager(用來負責注冊和呼叫插件的管理器);
2.pytest的規定
所有規范和實作均遵循pytest_前綴命名約定,從而易于區分和查找
3.加載插件的方式內置插件:從代碼內部的_pytest目錄加載 外部插件(第三方插件):通過setuptools entry
points機制發現的第三方插件模塊 conftest.py形式的本地插件:測驗目錄下的自動模塊發現機制
4.pytest插件的順序1.通過掃描命令列中的選項并阻止該插件被加載(即使內置插件也可以通過這種方式被阻止),這是在正常的命令列決議之前發生的,-p no:name
2.加載所有的內置插件
3.通過預掃描命令列中,-p name選項,在實際決議命令列之前加載指定的插件
4.加載所有通過setuptools入口點注冊的插件(可設定環境變數PYTEST_DISABLE_PLUGIN_AUTOLOAD進行禁用,僅加載明確指定的插件)
5.加載通過環境變數PYTEST_PLUGINS指定的所有插件
6.加載通過命令列推斷出的所有confest.py檔案:
-如果未指定測驗路徑,則使用當前dir作為測驗路徑
-如果存在指定測驗路徑,那么加載conftest.py和test */conftest.py,相對于第一個測驗路徑
注意,pytest是找不到藏在更深的子目錄里的confest.py檔案的,最好將confest.py保存在頂級的測驗或者專案的根目錄
7.通過在confest.py檔案中的pytest_plugin指定的變數,遞回加載所有的插件
5.安裝路徑
pytest第三方插件庫網站 https://docs.pytest.org/en/latest/plugins.html
PyPI下載 https://pypi.python.org(可以使用pytest、pytest-、-pytest作為搜索關鍵字來搜索插件)
6.常用的插件簡單描述pytest-rerunfailures:失敗用例重跑 pytest-html:生成xml/html格式的測驗報告,存盤于用戶指定路徑
pytest-repeat:重復執行多次用例 pytest-assume:進行多次斷言
pytest-xdist:測驗用例可以分布式執行,從而節省自動化測驗時間
pytest-cov:覆寫率報告,顯示哪些代碼行已經測驗過,哪些還沒有 pytest-instafail:在測驗運行期間報告失敗
pytest-timeout:根據函式標記或全域定義進行超時測驗
pytest-ordering:設定執行順序,對于一些背景關系依賴的,有時候可能需要設定一些特定執行順序
pytest-cache:重跑上次失敗的用例 pytest-autochecklog:自動生成測驗日志
pytest-sugar:改變默認外觀,添加了一個進度條
6.---------------------------------------------------
如果有想要代碼和了解更多的可以加 _99Rampant
一定要備注!!!一定要備注!!!一定要備注!!!一定要備注!!!一定要備注!!!一定要備注!!!一定要備注!!!一定要備注!!!一定要備注!!!一定要備注!!!一定要備注!!!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/297451.html
標籤:其他
上一篇:自動化測驗到底怎么開展?
下一篇:初始Selenium
