先看一下實戰結果,以及郵件內容:
1.用例結構:
測試用例對應的**,登入用例,test_case.py:
登入後檢視園區列表的介面資料(無需登入,前面已經動態獲取token了)**如下: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'
其他模組列表的查詢跟上面是同理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:
3.生成報告傳送報告到指定郵箱,send_email.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)
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(['zhull@wecut.com',"15736933982@163.com"])
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...