最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

第十章 自動化測試 Pytest+Jenkins

2023-07-04 09:33 作者:littersho  | 我要投稿

之前unittest框架

pytest是?python的一種單元測試框架

+數(shù)據(jù)庫(關(guān)系型數(shù)據(jù)庫MySQL,非關(guān)系型數(shù)據(jù)庫redis)

需要用到 requests(請求),yml(pyyaml讀取測試用例data.yaml的一個包),allure(測試報告),log(記錄運行日志),pyMySQL(數(shù)據(jù)庫)插件

跟Jenkins打通,發(fā)送到釘釘或企業(yè)微信

一,環(huán)境搭建

①python安裝

python官網(wǎng) -- 點擊Download-Windows -- 下載3.7.6版本 x86-64 -- 雙擊安裝包

-- 需要勾選 add python 3.7 to path

cmd--控制臺--輸入python 回車--顯示python3.7.6就表示安裝成功了

可以嘗試測試下: print(“pytest。。?!保┗剀? --? 顯示運行結(jié)果?pytest。。。

②編輯器pycharm安裝

選擇other versions(因為最新版本沒辦法破解)--? 找到2021-01-13號版本 -- 雙擊安裝成功即可 --打開時點擊試用(30天試用期)

二,接口測試

(1)HTTP是一個協(xié)議(服務(wù)器傳輸超文本到瀏覽器的傳送協(xié)議)

是基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)(HTML文件,圖片文件,查詢結(jié)果等)

(2)具體工作流程:eg,訪問www.baidu.com

① DNS先進行域名的解析 將域名地址轉(zhuǎn)化為IP地址 Remote Address

②發(fā)起TCP請求,三次握手建立連接

③客戶端 發(fā)送HTTP請求到服務(wù)端

④服務(wù)器端處理請求,返回HTTP報文

⑤瀏覽器接收返回HTTP報文,進行渲染展示

⑥?斷開連接 進行四次揮手

(3)HTTP資源

空白--右鍵--檢查 進行查看


三,pytest詳細介紹

首先建一個新的項目

①打開 pycharm? +new project

②Location 選擇項目文件地址? 再+一層 ApiTest

? ? Base interpret 選擇python安裝目錄? ?點擊create

main.py? 簡單的測試代碼,點擊三角符號,可運行,說明服務(wù)器創(chuàng)建成功了

③選中 ApiTest文件夾 -- 右鍵 --new --python file? eg:test_get

(1)python requests安裝

在剛新建的test_get.py文件中

import requests? #引入包,請求接口

# 如果爆紅

①可以把鼠標點上去,會彈出提示-- install package requests --點擊之后就會安裝?

②最下方一行找到terminal(終端的意思)--輸入:pip3 /pip install requests

③最下方一行找到python packages,搜索requests,安裝就行了


(2)python requests使用

輸入requests.? 自動會彈出提示,可以選擇想用的方法

#?requests.post

#?requests.get

#?鼠標左鍵+CTRL??可以跳進去查看源碼

def get(url,params=none,**kwargs)#函數(shù)定義,參數(shù):url必傳,params選傳,不傳時默認為none,關(guān)鍵字參數(shù),傳的話以key,value形式

def post(url,data=none,json=none,**kwargs)#函數(shù)定義,參數(shù):url必傳,params選傳,不傳時默認為none,關(guān)鍵字參數(shù),傳的話以key,value形式

簡單的使用例子:

import?requests?

r = requests.get("https://www.baidu.com") # 用r來接收接口請求的結(jié)果 r={response}

print (r.status_code)??

print (r.json())? #? r. 會提示response中的返回值內(nèi)容

可以點擊代碼前的位置,打上斷點

右鍵--debug 查看

點擊三角符號繼續(xù)運行

簡單的使用例子(帶params參數(shù)):

選中?ApiTest文件夾 -- 右鍵 --new --python file? eg:test_get_params

import?requests?

params1={“number”:“13167894587”,“appkey”:“0c565f14687d84”}# python中字典數(shù)據(jù)類型,先定義參數(shù)

r?=?requests.get(url="https://www.baidu.com",params=params1)

print (r.status_code)??

print (r.json())??

或者直接輸入?yún)?shù)

import?requests?

r?=?requests.get(url="https://www.baidu.com",params={“number”:“13167894587”,“appkey”:“0c565f14687d84”})?

簡單的使用例子(post帶json參數(shù)):

選中?ApiTest文件夾 -- 右鍵 --new --python file? eg:test_post_params

import?requests?

json_data={"title"="food",“number”:“13167894587”,“appkey”:“0c565f14687d84”}# python中字典數(shù)據(jù)類型,先定義參數(shù)

r?=?requests.post(url="https://www.baidu.com",json=json_data)# 看接口body中傳參是data還是json,就用相應(yīng)的參數(shù)

print (r.status_code)??

print (r.json())?

(3)requests請求中加入請求頭(多個接口會用到,拎出來避免冗余)

反爬程序,會出現(xiàn)418

Headers:Cookie,User-agent

簡單的使用例子:

import?requests?

r?=?requests.post(url="https://www.baidu.com",headers={"user-Agent":"Mozilla/5.0..."})#接口中的**kwargs關(guān)鍵字參數(shù),可選參數(shù)

print (r.status_code)??

print (r.json())?

四,代碼封裝

(1)pip install pytest #先安裝pytest第三方包

新建一個 python file:注意:文件命名規(guī)范:以test_開頭,如果不規(guī)范不會去執(zhí)行

def test_one():

? ? ? expect=1

? ? ? actual=1

? ? ? assert expect == actual? #關(guān)鍵字assert?用于捕獲錯誤并提示用戶定義的錯誤消息

#?assert關(guān)鍵字也稱斷言函數(shù)。 常用于在程序運行時檢測某條件是否滿足,如果不滿足則會報錯。

每條測試用例都要def一個 test_xx方法

(2)**程序運行方式:

①命令行運行

最下方一行找到terminal(終端的意思)--輸入:pytest test_one(測試用例文件名)

test+tab鍵,會展示相關(guān)文件名

運行結(jié)果:綠色點 成功? 紅色F 失敗

②三角形圖標運行(可分別運行測試用例)

執(zhí)行方式:tools-- python inter grated tools --testing -- default test runner:pytest

或者直接搜索pytest,可以定位到python inter grated tools?

(3)常用斷言方式:

? ? ? ?? 等于: ==? ? ?不等于:!=? ? 大于:>? ?小于:<?? ? ? ?屬于:in? 不屬于:not in?

? ? ? ? ?大于等于:?> =? ?? ? ? ? ? ?小于等于:?< =? ?? ? 是:is? ?不是:is not

(4)? ? ? ? ? CTRL+ALT 代碼格式化 ? ? ? tab鍵縮行? ?

(5)? ? ? ? python requests使用改進

import?requests?

def test-baidu():

r = requests.get("https://www.baidu.com")?

print (r.status_code)??

assert? ?r.status_code ==200

r2 = r.json() #JSON結(jié)果為:{‘status’:0,‘msg’:‘ok’,‘result’:{‘shouji’:‘13157489874’,‘city’:‘杭州’,‘company’:‘中國移動’}}

assert r2【‘status’】==0

assert?r2【‘msg’】==‘ok’

assert?r2【‘result’】【‘shouji’】==‘13167118005’

assert?r2【‘result’】【‘city’】==‘ok’



第十章 自動化測試 Pytest+Jenkins的評論 (共 條)

分享到微博請遵守國家法律
宜黄县| 武宣县| 香格里拉县| 永和县| 措勤县| 南雄市| 土默特右旗| 高邮市| 宜宾市| 梅州市| 福鼎市| 屏东市| 桦南县| 上虞市| 鄂伦春自治旗| 化德县| 辽源市| 阳朔县| 酉阳| 高淳县| 左贡县| 锡林郭勒盟| 安溪县| 儋州市| 永安市| 策勒县| 廊坊市| 正宁县| 合水县| 东台市| 丰宁| 墨玉县| 宣威市| 云和县| 厦门市| 工布江达县| 伊通| 聂拉木县| 莒南县| 自贡市| 徐水县|