pandas_profiling安裝的各種問題記錄 --為了用pandas_profiling生成資料報告
阿新 • • 發佈:2020-09-23
1. Requests介面自動化測試:
1.1 如何利用這麼利器進行介面測試,請看小demo:
# -*- coding:utf-8 -* import requests def test(): url = "http://120.24.239.**:9080/user/app/get_sys_time.do" #測試的介面url headers = {'content-type': 'application/json'} r = requests.get(url=url, headers=headers) return r.json() if __name__ == "__main__": test()
在進行介面測試的過程中對傳入的引數進行邊界值測試、錯誤推導測試、等價類測試等測試方法進行測試。有時安全性考慮,會在請求介面url上新增session的東東,這個時候不怕,直接把登入介面返回碼中的session提取出來,放在post請求的header裡,例如:
# -*- coding:utf-8 -* import requests def test(): url = "http://120.24.239.**:9080/user/app/login.do" #登入的介面 headers = {'content-type': 'application/json'} r = requests.get(url=url, headers=headers) return r.json() def test_have_session(url): cookie = "JSESSIONID=" + "".join(test().get("JSESSIONID")) #利用登入介面獲取JSESSIONID headers = {'content-type': 'application/xml', 'Cookie': cookie} r = requests.post(url, headers=headers) return r.json() if __name__ == "__main__": url = "" #測試的介面url test_have_session(url)
1.2 做完所有介面的介面測試後,就要編寫介面自動化了,不可能開發每次去修改介面你又得手動的去測試一遍,特別是產品上線了,需要到所有的介面進行一遍測試,這個時候有了介面自動化就方便多了,接下來看下一個縮減版的介面自動化測試demo:
# -*- coding:utf-8 -* # 測試報告郵件內容 text = "" # 用例統計 num_success = 0 num_fail = 0 # 測試通過 def test_success(): global num_success num_success += 1 print_out(u"測試結果:通過\n") # 測試不通過 def test_fail(txt): global num_fail num_fail += 1 print_out(u"測試結果:不通過 \n錯誤資訊: " + txt + "\n") # 郵件內容寫入 & 客戶端輸出 def print_out(message): global text text += "\n" + message print message # 返回值判斷 def test_result(result, code): if result.get("status") == code: test_success() return "pass" else: txt = u"期望返回值:" + str(code) + u" 實際返回值:" + str(result.get("status")) test_fail(txt) return "fail"
def test_interface(): # 初始化測試起始時間 start_time = datetime.datetime.now() # 構造測試集 suite = unittest.TestSuite() suite.addTest(MyTestSuite("test_login")) # 登陸 suite.addTest(MyTestSuite("test_employees")) # 員工管理 suite.addTest(MyTestSuite("test_department")) # 部門管理 suite.addTest(MyTestSuite("test_work_sys")) # 工作日曆管理 suite.addTest(MyTestSuite("test_holiday")) # 節假日管理 suite.addTest(MyTestSuite("test_queryAp")) # 智慧終端管理 suite.addTest(MyTestSuite("test_edit_info")) # 企業資訊管理 & 個人資訊 suite.addTest(MyTestSuite("test_data")) # 每日資料報表 & 月度資料報表 # 執行測試 runner = unittest.TextTestRunner() runner.run(suite) # 測試執行時間計算 end_time = datetime.datetime.now() total_use_case = u"執行用例總數:" + str(num_success + num_fail) + \ u"\t通過數:" + str(num_success) + \ u"\t不通過數:" + str(num_fail) total_time = u"\t總共耗時:" + str((end_time-start_time).seconds) + u"秒" print_out(total_use_case + total_time) # 發生郵件測試報告 Send_email.send_email(text)
將介面測試指令碼放伺服器去跑,需要新增try….except,將出現的錯誤資訊報出來,利用smtplib傳送錯誤資訊到自己的郵箱就好了。