python介面自動化實際演練

2021-09-18 07:09:55 字數 3686 閱讀 5103

先看一下實戰結果,以及郵件內容:

1.用例結構:

測試用例對應的**,登入用例,test_case.py:

import requests

import unittest

import json

host_ip = '網域名稱'

class post_request(unittest.testcase):

def setup(self):

self.login_url = 'http://'+host_ip+'/bg/login/in' #根據實際介面,自己填寫

"x-bg-token":"token"

} #根據實際內容,自己填寫

data = #根據實際內容,自己填寫

#將data序列化為json格式資料,傳遞給data引數

r = requests.post(self.login_url, data=data)

res= eval(r.text)

self.header["x-bg-token"] = res["data"]["token"]#獲取動態token

def test_post_login(self):

"""登入"""

url=self.login_url

# url = ''

# header = self.header

data = #根據實際內容,自己填寫

#將data序列化為json格式資料,傳遞給data引數

r = requests.post(url, data=data)

res = eval(r.text)

# print(r.text)

# assert res["code"]==200

self.assertequal(res['code'],200)

# assert response['msg']=='success'

登入後檢視園區列表的介面資料(無需登入,前面已經動態獲取token了)**如下:

def test_post_listpage(self):

"""園區列表"""

data = #根據實際內容,自己填寫

r = requests.post(url, data=json.dumps(data), headers=header)

# print (r.text)

res = eval(r.text)

# assert res['code']==200

self.assertequal(res['code'],200)

其他模組列表的查詢跟上面是同理

2.執行用例生成測試報告:

執行用例並生成對應的html報告**如下,run_testcase.py:

import unittest

import htmltestrunner

import time

# 相對路徑

test_dir ='./test_case'

test_dir1 ='./report'

discover = unittest.defaulttestloader.discover(test_dir, pattern='test*.py')

# 定義帶有當前測試時間的報告,防止前一次報告被覆蓋

now = time.strftime("%y-%m-%d %h_%m_%s")

filename = test_dir1 + '/' + now + 'result.html'

# 二進位制開啟,準備寫入檔案

fp = open(filename, 'wb')

# 定義測試報告

runner = htmltestrunner.htmltestrunner(stream=fp, title=u'測試報告', description=u'用例執**況')

runner.run(discover)

3.生成報告傳送報告到指定郵箱,send_email.py**如圖:

from email.mime.text import mimetext

from email.mime.multipart import mimemultipart

import smtplib

import time

import os

def new_report(path):

lists = os.listdir(path)

lists.sort(key=lambda fn: os.path.getatime(path + '\\' + fn))

file_new = os.path.join(path, lists[-1])

return file_new

# file = new_report('d:\\testproject\\autotest\\report')

# print file

file_new = new_report('e:\\autotest\\report')

username = '郵箱賬號'

password = '開通163郵箱授權碼對應的密碼'

sender = username

receivers = ','.join(['[email protected]',"[email protected]"])

f = open(file_new, 'rb')

mail_body = f.read()

f.close()

msg = mimemultipart()

msg['subject'] = u'介面自動化測試報告'

msg['from'] = sender

msg['to'] = receivers

text = mimetext("詳細內容請檢視附件

", 'html')

puretext = mimetext(mail_body, 'html', 'utf-8')

msg.attach(text)

msg.attach(puretext)

att.add_header('content-disposition', 'attachment', filename='xlink_report.html')

msg.attach(att)

smtp = smtplib.smtp()

smtp.connect('smtp.163.com',25)

smtp.login(username, password)

smtp.sendmail(sender, receivers, msg.as_string())

time.sleep(2)

smtp.quit()

Python 介面自動化

python環境搭建 第三方庫 requests安裝 pip install requests 網爛時可能安裝失敗,嗯 pip安裝第三方庫提示版本較低時需要更新pip的版本 命令 python m pip install upgrade pip 檢視安裝的第三方庫 pip list requests...

Python 介面自動化(六)

介面基礎知識 六 七 介面 1 介面 外部系統與本系統之間以及系統內部的各個子系統間,以約定標準提供的服務,包括對外提供的介面 對外提供的介面。不同的請求協議 http webservice dubbo socket http請求分為 get post delete put head option ...

Python 介面自動化(十)

ddt unnittest excel處理測試資料 九 十一 ddt 1 利用ddt實現資料驅動,ddt是第三方模組,在終端輸入pip install ddt 進行安裝 匯入 from ddt import ddt,data,unpack a 如果unpack後的引數少於5個可以使用 推薦用unpa...