導航:首頁 > 編程語言 > pythonunittestapi

pythonunittestapi

發布時間:2025-01-09 10:04:58

『壹』 【python介面測試-1】登錄介面獲取token和uuid

所有介面測試都離不開登錄介面獲取的用戶信息,無論是使用JMeter、APIPost還是Python,登錄介面的調試都是首要步驟。在學習Python和unittest時,從項目開始,邊實踐邊探索,這里推薦菜鳥教程作為入門資源。

之前關於JMeter和ApiPost的文章里,同樣調試了登錄介面。登錄介面的參數和返回數據可以通過Fiddler抓包查看。登錄介面返回的json數據包含uuid和token,這兩個信息作為用戶認證數據,需要在所有介面測試中的header中引用。為此,編寫代碼提取uuid和token,並將其拼接到header中。

在編碼過程中,將環境信息、常用用戶信息等存儲為常量,便於在編碼時直接引用。創建了settings文件夾以存放這些常量。編寫unittest測試類(testman.py)來調用介面和公共方法。實現登錄介面調試和獲取uuid、token的過程,封裝在common模塊的get_header.py文件中。

具體步驟包括定義login_url、設置header和data參數,並調用post方法。login_url引用settings文件中的環境信息。在headers參數中添加固定的頭部信息,如Referer,否則可能導致請求失敗。data參數以字典形式包含用戶信息,考慮到不同項目登錄參數的差異,進行了適當的if判斷。通過res_data接收調用post方法返回的數據,但由於數據格式為字元串,直接使用json()方法獲取token信息不適用,需要先將字元串轉換為字典格式。

轉換字元串為字典推薦使用ast.literal_eval()方法,確保安全且高效。獲取到轉換後的數據後,將uuid和token追加到header中。之後,使用這個包含uuid和token信息的header調用後續的業務介面。

以上步驟涵蓋了從登錄介面調試到獲取uuid和token,以及如何將這些信息應用在其他介面測試中的全過程。有興趣了解更多細節,歡迎訪問相關文章。

『貳』 如何用python開發移動App後台需要掌握哪些技術

1、如果使用python語言,需要學習哪些知識?
python作為一門簡單明了的語言,非常容易上手,語言層面不會太復雜,稍微有點難度的頂多就是裝飾器、元類和少量函數式編程內容。要說學習的話,我覺得更多是一些編程方面通用的東西,比如:數據結構和演算法、設計模式、操作系統、計算機網路之類的

2、選擇什麼樣的python框架開發,這個框架的優勢?
tornado,因為非阻塞io的原因,性能非常高,特別適合寫後端API(App的後端應該都是rest風格的api),而且成熟穩定

3、如何部署伺服器?本地伺服器調試,以及公網伺服器部署?
這個一兩句說不清楚,涉及到運維、測試、開發諸多方面, 部署和測試推薦幾個包:fabric、nose、unittest(python自帶),版本管理推薦git,持續集成推薦使用docker+jenkins

4、如果使用python框架開發移動後台服務,在開發源碼內使用哪種框架?mvc還是其它的,比如我返回json數據,每次json對象最外層有一些相同的東西,該如何處理?
MVC什麼的,一般的框架都差不多的,tornado也是支持的,返回json有相同的東西,寫個修飾器就完了

5、python的後台服務最大能支持多大的pv量會嚴重影響用戶體驗性能?
youtube、reddit、豆瓣、知乎這樣的大流量網站都是python寫的,覺得你的App的規模不太可能遇到性能問題,即使有也應該不是python的問題,而是任何語言都會有問題。畢竟web後端不是計算密集型,而是io密集型的,python和其他語言的區別不會太大吧,大量的pv是可以靠堆伺服器堆出來的,如果是計算量比較大的任務,你可以考慮用c或c++寫

6、如何兼顧 網頁前端以及移動端 開發的後台?
用python寫的API,網頁和移動端都是可以調用啊,讓前端學學React,就可以輕松解決前後端分離這個問題(PS: facebook 就是後端php + 前端React,淘寶也有在用nodejs做前後端分離)

7、有沒用相關的案例,即用python開發的移動後台?有沒有該問題的開源項目?
這個應該比較少,App後端開源的不常見,而且大部分是rest風格的api,很多時候會涉及到自身的業務和敏感信息應該不會開源的吧(又不是bbs或者博客程序)

『叄』 自動化測試工具有哪些

自動化測試工具有如下幾種:

1、WinRunner

Mercury Interactive公司的WinRunner是一種企業級的功能測試工具,用於檢測應用程序是否能夠達到預期的功能及正常運行。

通過自動錄制、檢測和回放用戶的應用操作,WinRunner能夠有效地幫助測試人員對復雜的企業級應用的不同發布版進行測試,提高測試人員的工作效率和質量,確保跨平台的、復雜的企業級應用無故障發布及長期穩定運行。企業級應用可能包括Web應用系統,ERP系統,CRM系統等等。

2、Rational Robot

是業界最頂尖的功能測試工具,它甚至可以在測試人員學習高級腳本技術之前幫助其進行成功的測試。它集成在測試人員的桌面IBM Rational Test Manager上,在這里測試人員可以計劃、組織、執行、管理和報告所有測試活動,包括手動測試報告。

這種測試和管理的雙重功能是自動化測試的理想開始。

3、AdventNet QEngine

AdventNet QEngine是一個應用廣泛且獨立於平台的自動化軟體測試工具,可用於Web功能測試、web性能測試、Java應用功能測試、Java API測試、SOAP測試、回歸測試和Java應用性能測試。

支持對於使用HTML、JSP、ASP、.NET、PHP、JavaScript/VBScript、XML、SOAP、WSDL、e-commerce、傳統客戶端/伺服器等開發的應用程序進行測試。此工具以Java開發,因此便於移植和提供多平台支持。

4、SilkTest

是業界領先的、用於對企業級應用進行功能測試的產品,可用於測試Web、Java或是傳統的C/S結構。SilkTest提供了許多功能,使用戶能夠高效率地進行軟體自動化測試。

這些功能包括:測試的計劃和管理;直接的資料庫訪問及校驗;靈活、強大的4Test腳本語言,內置的恢復系統(Recovery System);以及具有使用同一套腳本進行跨平台、跨瀏覽器和技術進行測試的能力。

5、QA Run

QARun的測試實現方式是通過滑鼠移動、鍵盤點擊操作被測應用,即而得到相應的測試腳本,對該腳本可以進行編輯和調試。在記錄的過程中可針對被測應用中所包含的功能點進行基線值的建立,換句話說就是在插入檢查點的同時建立期望值。

在這里檢查點是目標系統的一個特殊方面在一特定點的期望狀態。通常,檢查點在QARun提示目標系統執行一系列事件之後被執行。檢查點用於確定實際結果與期望結果是否相同

『肆』 常用的自動化測試工具有哪些

1、Appium
AppUI自動化測試
Appium 是一個移動端自動化測試 開源工具,支持iOS 和Android 平台,支持Python、Java 等語言,即同一套Java 或Python 腳本可以同時運行在iOS 和Android平台,Appium 是一個C/S 架構,核心是一個 Web 伺服器,它提供了一套 REST 的介面。當收到客戶端的連接後,就會監聽到命令,然後在移動設備上執行這些命令,最後將執行結果放在 HTTP 響應中返還給客戶端。
2、Selenium
WebUI自動化測試
Selenium是一個用於Web應用程序測試的工具,Selenium已經成為Web自動化測試工程師的首選。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7、8、9)、Mozilla Firefox、Mozilla Suite等。這個工具的主要功能包括:測試與瀏覽器的兼容性——測試你的應用程序看是否能夠很好得工作在不同瀏覽器和操作系統之上。測試系統功能——創建回歸測試檢驗軟體功能和用戶需求。支持自動錄制動作和自動生成 .Net、Java、Perl等不同語言的測試腳本。Selenium 是ThoughtWorks專門為Web應用程序編寫的一個驗收測試工具。其升級版本為Webdriver。
3、Postman
介面測試
Postman 提供功能強大的 Web API 和 HTTP 請求的調試,它能夠發送任何類型的HTTP 請求 (GET, POST, PUT, DELETE…),並且能附帶任何數量的參數和 Headers。不僅如此,它還提供測試數據和環境配置數據的導入導出,付費的 Post Cloud 用戶還能夠創建自己的 Team Library 用來團隊協作式的測試,並能夠將自己的測試收藏夾和用例數據分享給團隊。
4.Robot Framework
Robot Framework是一個開源自動化框架,它實現了用於驗收測試和驗收測試驅動開發(ATDD)的關鍵字驅動方法。 Robot Framework為不同的測試自動化需求提供框架。 但是,通過使用Python和Java實現其他測試庫,可以進一步擴展其測試功能。 Selenium WebDriver是Robot Framework中常用的外部庫。
測試工程師可以利用Robot Framework作為自動化框架,不僅可以進行Web測試,還可以用於Android和iOS測試自動化。 對於熟悉關鍵字驅動測試的測試人員,可以輕松學習Robot Framework。
5、Soapui
介面測試
SoapUI提供了所有所需的工具來測試和完善的測試。總覽標簽給你一個項目的所有內容和全面的看法。只需一次點擊,您可以添加任何數量的斷言為驗證傳入的消息TestStep。使用功能強大的HTTP監視器記錄,分析甚至修改客戶機 - 伺服器通信,因為它發生。和SoapUI臨帶來了更專業和先進的功能,保持遙遙領先其他測試工具。輕松創建和運行數據驅動測試。該數據源TestStep讀取測試數據從任何外部來源 - Excel中,XML,JDBC,文件,等等 - 到標准SoapUI屬性。
針對上面的自動化測試工具,每一個都有自己優勢的功能,隨著計算機行業的發展,自動化測試工具會越來越多,越來越完善。

『伍』 Python自動化測試框架有哪些

分享一些可用的Python自動化測試框架。
自動化測試常用的Python框架有哪些?常用的框架有Robot Framework、Pytest、UnitTest/PyUnit、Behave、Lettuce。Pytest、Robot Framework和UnitTest主要用於功能與單元測試,Lettuce和Behave僅適用於行為驅動測試。
一、Robot Framework
Python測試框架之一,Robot Framework被用在測試驅動(test-driven)類型的開發與驗收中。雖然是由Python開發而來,但是它也可以在基於.Net的IronPython和基於Java的Jython上運行。作為一個Python框架,Robot還能夠兼容諸如Windows、MacOS、以及Linux等平台。
在使用Robot Framework(RF)之前,需要先安裝Python 2.7.14及以上的版本。推薦使用Python 3.6.4,以確保適當的注釋能夠被添加到代碼段中,並能夠跟蹤程序的更改。同時還需要安裝Python包管理器--pip。
二、Pytest
適用於多種軟體測試的Pytest,是另一個Python類型的自動化測試框架。憑借著其開源和易學的特點,該工具經常被QA(質量分析)團隊、開發團隊、個人團隊、以及各種開源項目所使用。鑒於Pytest具有「斷言重寫(assert rewriting)」之類的實用功能,許多大型互聯網應用,如Dropbox和Mozilla,都已經從下面將要提到的unittest(Pyunit)切換到了Pytest之上。
除了基本的Python知識,用戶並不需要更多的技術儲備。另外,用戶只需要有一台帶有命令行界面的測試設備,並且安裝好了Python包管理器、以及可用於開發的IDE工具。
三、UnitTest/PyUnit
UnitTest/PyUnit一種標准化的針對單元測試的Python類自動化測試框架。基類TestCase提供了各種斷言方法、以及所有清理和設置的常式。因此,TestCase子類中的每一種方法都是以「test」作為名詞前綴,以標識它們能夠被作為測試用例所運行。用戶可以使用load方法和TestSuite類來分組、並載入各種測試。
可以通過聯合使用,來構建自定義的測試運行器。正如我們使用Junit去測試Selenium那樣,UnitTest也會用到UnitTest-sml-reporting、並能生成各種XML類型的報告。由於UnitTest默認使用了Python,因此我們並不需要什麼先決條件。除了需要具備Python框架的基本知識,您也可以額外地安裝pip、以及用於開發的IDE工具。
四、Behave
行為驅動開發是一種基於敏捷軟體開發的方法。它能夠鼓勵開發人員、業務參與者和QA人員,三者之間的協作。Python測試框架Behave允許團隊避開各種復雜的情況,去執行BDD測試。從本質上說該框架與SpecFlow和Cucumber相似,常被用於執行自動化測試。用戶可以通過簡單易讀的語言來編寫測試用例,並能夠在其執行期間粘貼到代碼之中。而且,那些被設定的行為規范與步驟,也可以被重用到其他的測試方案中。
任何具備Python基礎知識的人都可以使用Behave。其他先決條件還包括:先安裝Python 2.7.14及以上的版本。通過Python包管理器或pip來與Behave協作。大多數開發人員會選擇Pycharm作為開發環境,當然您也可以選用其他的IDE工具。
五、Lettuce
Lettuce是另一種基於Cucumber和Python的行為驅動類自動化工具。Lettuce主要專注於那些具有行為驅動開發特徵的普通任務。它不但簡單易用,而且能夠使得整個測試過程更流暢、甚至更有趣。安裝帶有IDE的Python 2.7.14、及以上的版本。當然,您也可以使用Pycharm或任何其他IDE工具。同時,您還需要安裝Python包管理器。
自動化測試的Python框架,Pytest、Robot Framework和UnitTest可主要用於功能與單元測試,而Lettuce和Behave僅適用於行為驅動測試。對於功能測試而言,Pytest是的。如果您是基於Python自動化測試的新手,Robot Framework是的入門工具。雖然其功能有所受限,但是它非常容易上手。對於基於Python的BDD測試而言,Lettuce和Behave同樣優秀。不過,如果你已經有了一定的Pytest經驗,那麼請使用Pytest-bdd。

『陸』 使用python做介面自動化測試容易嗎

為什么要做介面自動化測試?
在當前互聯網產品迭代頻繁的背景下,回歸測試的時間越來越少,很難在每個迭代都對所有功能做完整回歸。但介面自動化測試因其實現簡單、維護成本低,容易提高覆蓋率等特點,越來越受重視。
為什么要自己寫框架呢?
使用Postman調試通過過直接可以獲取介面測試的基本代碼,結合使用requets + unittest很容易實現介面自動化測試的封裝,而且requests的api已經非常人性化,非常簡單,但通過封裝以後(特別是針對公司內特定介面),可以進一步提高腳本編寫效率。
一個現有的簡單介面例子
下面使用requests + unittest測試一個查詢介面
介面信息如下
請求信息:
Method:POST
URL:api/match/image/getjson
Request:
{
"category": "image",
"offset": "0",
"limit": "30",
"sourceId": "0",
"metaTitle": "",
"metaId": "0",
"classify": "unclassify",
"startTime": "",
"endTime": "",
"createStart": "",
"createEnd": "",
"sourceType": "",
"isTracking": "true",
"metaGroup": "",
"companyId": "0",
"lastDays": "1",
"author": ""
}

Response示例:
{
"timestamp" : xxx,
"errorMsg" : "",
"data" : {
"config" : xxx
}

Postman測試方法見截圖:

測試思路
1.獲取Postman原始腳本
2.使用requests庫模擬發送HTTP請求**
3.對原始腳本進行基礎改造**
4.使用python標准庫里unittest寫測試case**
原始腳本實現
未優化
該代碼只是簡單的一次調用,而且返回的結果太多,很多返回信息暫時沒用,示例代碼如下
import requests

url = "http://cpright.xinhua-news.cn/api/match/image/getjson"

querystring = {"category":"image","offset":"0","limit":"30","sourceId":"0","metaTitle":"","metaId":"0","classify":"unclassify","startTime":"","endTime":"","createStart":"","createEnd":"","sourceType":"","isTracking":"true","metaGroup":"","companyId":"0","lastDays":"1","author":""}

headers = { 'cache-control': "no-cache", 'postman-token': "e97a99b0-424b-b2a5-7602-22cd50223c15"
}

response = requests.request("POST", url, headers=headers, params=querystring)

print(response.text)

優化 第一版
調整代碼結構,輸出結果Json出來,獲取需要驗證的response.status_code,以及獲取結果校驗需要用到的results['total']
#!/usr/bin/env python#coding: utf-8'''
unittest merchant backgroud interface
@author: zhang_jin
@version: 1.0
@see:http://www.python-requests.org/en/master/
'''import unittestimport jsonimport tracebackimport requests

url = "http://cpright.xinhua-news.cn/api/match/image/getjson"

querystring = { "category": "image", "offset": "0", "limit": "30", "sourceId": "0", "metaTitle": "", "metaId": "0", "classify": "unclassify", "startTime": "", "endTime": "", "createStart": "", "createEnd": "", "sourceType": "", "isTracking": "true", "metaGroup": "", "companyId": "0", "lastDays": "1", "author": ""
}

headers = { 'cache-control': "no-cache", 'postman-token': "e97a99b0-424b-b2a5-7602-22cd50223c15"
}#Post介面調用
response = requests.request("POST", url, headers=headers, params=querystring)#對返回結果進行轉義成json串
results = json.loads(response.text)#獲取http請求的status_codeprint "Http code:",response.status_code#獲取結果中的total的值print results['total']#print(response.text)

優化 第二版
介面調用異常處理,增加try,except處理,對於返回response.status_code,返回200進行結果比對,不是200數據異常信息。
#!/usr/bin/env python#coding: utf-8'''
unittest merchant backgroud interface
@author: zhang_jin
@version: 1.0
@see:http://www.python-requests.org/en/master/
'''import jsonimport tracebackimport requests

url = "http://cpright.xinhua-news.cn/api/match/image/getjson"

querystring = { "category": "image", "offset": "0", "limit": "30", "sourceId": "0", "metaTitle": "", "metaId": "0", "classify": "unclassify", "startTime": "", "endTime": "", "createStart": "", "createEnd": "", "sourceType": "", "isTracking": "true", "metaGroup": "", "companyId": "0", "lastDays": "1", "author": ""
}

headers = { 'cache-control': "no-cache", 'postman-token': "e97a99b0-424b-b2a5-7602-22cd50223c15"
}try: #Post介面調用
response = requests.request("POST", url, headers=headers, params=querystring) #對http返回值進行判斷,對於200做基本校驗 if response.status_code == 200:
results = json.loads(response.text) if results['total'] == 191: print "Success" else: print "Fail" print results['total'] else: #對於http返回非200的code,輸出相應的code raise Exception("http error info:%s" %response.status_code)except:
traceback.print_exc()

閱讀全文

與pythonunittestapi相關的資料

熱點內容
命令式介面 瀏覽:399
電腦伺服器域名地址怎麼查 瀏覽:340
什麼行業要用編程 瀏覽:297
三洋立風櫃壓縮機 瀏覽:296
微拍app為什麼下載不了了 瀏覽:257
非常好的期貨5分鍾公式源碼 瀏覽:4
linuxcentos7安裝 瀏覽:691
華為網盤文件夾加密 瀏覽:74
安卓手機什麼真人游戲好玩 瀏覽:772
崑山加密軟體需求 瀏覽:270
蘋果照片壓縮包怎麼打開 瀏覽:796
檢測溫濕度和二氧化碳的單片機 瀏覽:964
安卓手機雨滴怎麼隱藏 瀏覽:587
pdf文件轉換器word 瀏覽:987
vscodepython模塊方法 瀏覽:344
如何知道伺服器有什麼漏洞 瀏覽:902
java電商訂單支付源碼 瀏覽:102
android手機滑鼠 瀏覽:465
php支付項目經驗 瀏覽:931
中國人民銀行在哪裡下載app 瀏覽:561