python學習筆記(excel+unittest)

来源:http://www.cnblogs.com/cllovewxq/archive/2016/04/11/5377223.html
-Advertisement-
Play Games

準備先利用之前整理的python自帶的unittest框架 整合excel 實現介面自動化測試功能 先看看excel表格設置: 下來是對excel獲取的代碼: 之後是unittest框架 利用迴圈執行所有用例 現在只要在excel里添加介面測試用例 運行腳本 即可 ...


準備先利用之前整理的python自帶的unittest框架

整合excel 實現介面自動化測試功能

先看看excel表格設置:

下來是對excel獲取的代碼:

 1 #!/usr/bin/env python
 2 # -*- coding: utf_8 -*-
 3 
 4 import xlrd
 5 import json
 6 
 7 class Create_excel:
 8     def open_excel(self,path):
 9         workbook = xlrd.open_workbook(path)
10         table = workbook.sheets()[0]
11         return table
12     #獲取sheet
13 
14     def get_nrows(self,table):
15         nrows = table.nrows
16         return nrows
17     #獲取行號
18 
19     def testname(self,table,nrows):
20         TestName = []
21         for i in range(1,nrows):
22             TestName.append(table.cell(i,0).value)
23         return TestName
24     #獲取用例name
25 
26     def testdata(self,table,nrows):
27         TestData = []
28         for i in range(1,nrows):
29             data = json.loads(table.cell(i,1).value)
30             TestData.append(data)
31         return TestData
32     #獲取data介面參數
33 
34     def testurl(self,table,nrows):
35         TestUrl = []
36         for i in range(1,nrows):
37             TestUrl.append(table.cell(i,2).value)
38         return TestUrl
39     #獲取介面測試url
40 
41     def testpattern(self,table,nrows):
42         TestPattern = []
43         for i in range(1,nrows):
44             TestPattern.append(table.cell(i,3).value)
45         return TestPattern
46     #獲取介面期望響應結果
47 
48     def testreport(self,table,nrows):
49         TestReport = []
50         for i in range(1,nrows):
51             TestReport.append(table.cell(i,4).value)
52         return TestReport
53     #獲取用例期望的運行結果
54 
55 if __name__ == "__main__":
56     Create_excel()

之後是unittest框架

 1 #!/usr/bin/env python
 2 # -*- coding: utf_8 -*-
 3 
 4 import requests
 5 import re
 6 import unittest
 7 from myexcel import Create_excel
 8 
 9 class Testapi():
10     def testapi(self,url,data):
11         results = requests.post(url,data)
12         return results
13 
14 class Testcase(unittest.TestCase):
15     def setUp(self):
16         print "介面測試開始"
17 
18     def tearDown(self):
19         print "介面測試結束"
20 
21     def test_post(self):
22         global report
23         api = Testapi()
24         excel = Create_excel()
25         testpath = "testcase.xls"
26         testtable = excel.open_excel(testpath)
27         testnrows = excel.get_nrows(testtable)
28         for i in range(0,testnrows-1):
29             testname = excel.testname(testtable,testnrows)[i]
30             testdata = excel.testdata(testtable,testnrows)[i]
31             testurl = excel.testurl(testtable,testnrows)[i]
32             testpattern = excel.testpattern(testtable,testnrows)[i]
33             testreport = excel.testreport(testtable,testnrows)[i]
34             testresults = api.testapi(testurl,testdata)
35             pattern = re.compile(testpattern)
36             match = pattern.search(testresults.url)
37             try:
38                 if testresults.status_code == 200:
39                     if match.group() == testpattern:
40                         report = "pass"
41                 else:
42                     print "測試請求失敗"
43             except AttributeError:
44                 report = "no"
45             if report == testreport:
46                 print "用例名稱:",testname,"測試結果:測試通過"
47             else:
48                 print "用例名稱:",testname,"測試結果:測試失敗"
49 
50 if __name__ == "__main__":
51     unittest.main()

利用迴圈執行所有用例

現在只要在excel里添加介面測試用例

運行腳本 即可

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 首先來說,委托的作用就是可以給類的方法傳遞其他類的方法而不必將類實例化。第二點,委托就是事件和響應事件的方法的橋梁(就是傳遞響應事件的方法給事件)。這裡要註意,委托跟類平級,事件與方法平級。 全文 事件與委托似乎很難以理解,這是因為它們的使用方式與常用的編碼有很大的差別,例如通常編寫的都是同步代碼, ...
  • 分類:Unity、C#、VS2015 創建日期:2016-04-11 一、簡介 在地形編輯器一節中,已經告訴了你如何使用已經創建好的樹來形成大片樹林。這一節告訴你在 Unity 5.3.4中如何利用【樹木創建器】一步一步地創建一棵樹: 當你學會了創建樹的基本操作後,你就可以根據自己的需要創建任意形狀... ...
  • 先拿出我半前年前平臺的設計初稿,經過半年的努力我已經完成了該設計稿的所有功能。並且理念已經遠遠超出該設計稿。 下麵是一些博友對我貼子的評價: 1、樓主,想法很美好,現實很骨感,我們公司就有一套你說的這樣的平臺,界面都是用XML配置出來的,雖然開發效率很高,但只能做固定版式的系統,有任何版式的修改,幾 ...
  • 這幾個月一直忙APP的項目,沒來得及更新項目,想想該抽出時間整理一下開發思路,跟大家分享,同時也希望得到寶貴的建議。 先說一下我們的許可權管理的的設計思路,首先一個企業信息化管理系統一定會用到許可權管理, 那麼一個動態的菜單在企業信息化管理系統占有一定的分量。 下麵介紹我的一些思路。 由於原聲的winf ...
  • SignalR支持多種伺服器和客戶端配置。此外,每種傳輸方式都有自身的要求限制;如果某種傳輸方式不被系統支持,SignalR能夠優雅地將故障轉移到其他類型的傳輸方式。關於SignalR所支持的傳輸方式的詳細信息,參見: Transports and Fallbacks。 系統要求 SignalR服務 ...
  • 當我們運行java程式時,發現程式不動,但又不知道是哪裡出問題時,可以使用JDK自帶的jstack工具去定位; 廢話不說,直接上例子吧,在window平臺上的; 死迴圈 寫個死迴圈的程式如下: 先運行以上程式,程式進入死迴圈; 打開cmd,輸入tasklist,找到javaw.exe的PID,如下為 ...
  • 這個寫的很不錯 http://www.cnblogs.com/Mr-xu/archive/2012/08/07/2626973.html 什麼叫引用? 引用就是對某對象的另一個名字。 主要用途: 為了描述函數的參數和返回值,特別是運算符的重載。 用法: X var; X& r = var; 那麼r是 ...
  • Spring這類的框架給我們開髮帶來非常大的好處,讓我們更加快速、有效的開發。 所以我們在開發中通常都會用到各種框架,每個框架都有很多jar包,每個jar都有各自不同的功能。開發不同的功能用到的jar也不盡相同,所以當我們用到相關框架的時候,並不是把它所有的jar都引入系統。那麼怎麼確定自己將會用到 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...