Python接口測試實戰丨如何實現特殊字符集的自動化測試?

2020-12-21 51Testing軟體測試網

在當前網際網路產品更新迭代的快節奏下,回歸測試的時間被嚴重壓縮,在金融領域和其他網際網路應用場景下,支付、轉帳、清算往往是核心功能,為了確保資金安全和快速到帳,接口在對用戶名、帳戶名中的特殊字符的正確處理顯得尤為重要。

特殊字符極其豐富,手工測試往往需要耗費大量成本,接口自動化測試因其實現簡單、維護成本低、容易提高覆蓋率等特點,越來越受重視。

Python由於可移植性好、第三方庫豐富、上手簡單而成為一種便捷高效的接口自動化測試工具。使用python向接口發送請求,一般包含以下步驟:

1.請求的組裝:請求信息一般包含接口的URL,以及一些其他可能需要的信息,比如headers,post請求需要用的data等;

2.請求的發送:請求組裝好後進行請求的發送,一般分為GET和POST方法,如果需要向接口傳輸數據,可以在data中傳輸,並獲取返回數據;

3.響應的解析:接收返回的數據並進行解析。

Python實現了成熟的請求方法,目前新版的python3版本較好地支持第三方庫requests,靈活組裝請求,發送請求,獲取響應信息,支持JSON、文件等多種數據傳輸格式。

安裝好requests後,導入,並簡單組裝一個get請求:

#導入requests包

import requests

#接口URL,這裡以一個虛擬網址為例

url = 『http://test.org』

response = requests.get(url)

print(response.txt)

帶有數據的post請求:

import requests

url = "http://test.org/post"

data = '''{

"name": "張三",

"age": 18

}'''

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

print(response.text)

在日常接口測試中,經常需要設計反向案例驗證接口對於異常場景的覆蓋,比如對特殊字符的處理,依賴人工輸入驗證比較低效,利用python讀取特殊字符集的帳號,傳入請求數據中,即可快速完成特殊字符集的接口測試,滿足多種場景的測試。

利用python的csv模塊讀取儲存字符集的csv文件的方法如下:

import csv

with open('data.csv', 'r') as f:

reader = csv.reader(f)

print(type(reader))

for row in reader:

print(row)

下面以簡單的匯款場景為例,進行特殊字符集的接口測試。首先構造接口的輸入數據,以字典格式定義;讀取特殊字符集,以列表儲存;接下來就可以構造請求內容:遍歷列表,替換帳戶名中的字符為特殊字符,發起請求,讀取響應結果。具體步驟和代碼如下。

import requests, csv

url = 『http://kuahangzhuanzhang.org/post』

#構造輸入數據

data = {

「sendaccnm」: 「王小林」,

「sendaccno」: 「1234567890」,

「sendbkno」: 「103100000026」,

「recvaccnm」: 「馬小騰」,

「recvaccno」: 「2345678901」,

「recvbkno」: 「105100000017」

}

#定義列表,讀取特殊字符集文件,列表儲存

li = []

with open('data.csv', 'r') as f:

reader = csv.reader(f)

for row in reader:

li.append(row[0])

#替換data中的數據,產生帶有特殊字符的戶名數據並發起請求

for i in range(len(li)):

new_accnm = data.get("sendaccnm").replace(data.get("sendaccnm")[1],li[i])

data["sendaccnm"]=new_accnm

print(data) #可列印一下替換後的數據

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

print(response.text) #列印響應數據

請求數據中,原帳戶名都已經被替換成帶有特殊字符的帳戶名,對於生僻字、少數民族姓名、外國人姓名等含特殊字符的場景,實現了特殊字符的接口自動化測試。

相關焦點

  • 網易考拉、東方財富網軟體測試工程師面試題
    正在準備軟體測試工程師的求職,前輩分享的一些經驗是值得學習的,今天陝西優就業小優給大家整理了網易考拉、東方財富網軟體測試工程師面試被提問到的問題,希望能給大家帶來參考:網易考拉測試工程師面試經驗:>一面:語言上,網絡資料庫數據結構有沒有學過(大概是希望我會Java吧)如何學習python,看的什麼書,她應該希望我講一個項目吧,python的數據結構有什麼,list和tuple區別,list增刪改查
  • 好程式設計師Python培訓分享Python如何調用RPC接口
    Python如何調用RPC接口是很多Python開發工程師比較關心的問題,本篇文章好程式設計師Python培訓小編就給喜歡Python開發的小夥伴們分享一下Python調用RPC接口的詳解,文中有詳細的代碼列出有很好的參考價值,喜歡的小夥伴就隨小編一起來看一下吧,希望對大家有所幫助。
  • Python開發簡單爬蟲【學習資料總結】
    二、URL管理器和實現方法 防止重複抓取、防止循環抓取 將這些Handler傳送給urllib2的build_opener方法創建一個opener對象,再傳給urllib2的install_opener方法,urllib2這個模塊就具備了進行特殊情景處理的能力。
  • 性能測試模型實戰分析 | C/S 架構的應用如何進行性能測試
    客戶端負責實現用戶接口功能,同時封裝了部分應用邏輯。伺服器端的資料庫伺服器主要提供數據存儲功能,也通過觸發器和 存儲過程提供部分應用邏輯。C/S/S結構即客戶/應用伺服器/資料庫伺服器三層結構,中間增加了應用伺服器,通常實現應用邏輯,是連接客戶與資料庫伺服器的橋梁。
  • 攜程酒店 Devops 測試實踐
    業務和技術變革推動流程變革  攜程在很久以前就已經開始進行持續交付的建設,應用部署全部實現了容器化, 並實現了一套自動化程度較高的持續集成發布系統-Ctrip CD(後面簡稱CD),CD發布流程如下圖所示:
  • 如何搭建測試團隊?如何去開展測試工作?我對此進行了這些思考
    ,接下來你將需要羅列你的人才招聘計劃,因為你所招的人是分配到項目中去,那麼是否需要招聘人員能夠滿足項目的相關要求,比方說:目前我們團隊做的產品是一個基於公有雲的產品,那我在招聘人才組建方面會考慮以下組織架構的成員:  高級測試(自動化/性能)、中級測試(接口/自動化)、初級測試(主要是手工測試基於一-3年工作經驗或者應屆畢業生)有可培養的潛質。
  • 美媒:臺北測試無人駕駛巴士 有望一年內實現公共運輸自動化
    參考消息網10月2日報導美媒稱,臺灣低調測試無人駕駛巴士,給臺北帶來了在1年內實現公共運輸自動化的希望。據美國《紐約時報》網站9月28日報導,在臺北的一個大學校園裡,一輛顏色鮮亮的擺渡車正從榕樹的綠蔭下駛過,發動機的聲音小到幾乎聽不見。
  • 達內軟體測試課程震撼升級,重磅推出挑戰高薪培優課
    變化主要在第二階段,將Python的內容後移,增加接口測試的內容,這樣對於只想學習兩個月就業課的學生,學習完這些內容就可以順利就業。培優課程主要是講程式語言Python,基於Python的接口框架和功能自動化工具Selenium和性能測試工具JMeter,課程的難度加大,以保障培優課的學員學到技能更深,拿到的薪資更高一些。
  • 那些讓人驚豔的Python庫
    python-nameparser–把一個人名分解為幾個獨立的部分。python-user-agents–瀏覽器user agent解析器。sqlparse–一個無驗證的SQL解析器。特殊文本格式處理一些用來解析和操作特殊文本格式的庫。
  • 微服務測試:如何破解測試所面臨的問題?測試的類型和範圍你懂嗎
    由於傳統的測試工作採用了其事後測試的策略,修復問題的時間周期被拉長了,時間成本被加大了,最終導致產品發布的延遲。延期的發布又會導致需求無法得到客戶及時的確認,需求的變更也就無法得到提前實現,這樣,項目無疑就陷入了惡性循環的「泥潭」。
  • 西安哪家軟體測試培訓機構好,最新排名來啦
    NO 2、啄木鳥學院啄木鳥學院作為西安本土的教育培訓機構,專注於軟體測試開發人才的培養,這個機構最不同於其它機構的一點就是,它是小班授課,每個班的人數控制在15-20人之間,小班授課服務有保障,就業有優勢,畢業學員在西安平均就業薪資達8549元。華為前測試經理全職線下授課,課程體系偏測試開發方向,Python爬蟲開發等課程,深入實戰運用,重視實戰項目演練,緊跟企業需求。
  • 整車廠如何快速實現測試設備CANFD升級?
    要實現從傳統汽車到智能網聯汽車的升級,從整車生產線控制、實驗室、ECU單元的設計都將做出很大的改動,其中涉及的CAN節點很多且複雜,如果全部升級為CANFD節點來實現ECU單元的設計、測試以及生產等,將會是一個比較漫長的過程。二、如何快速實現設備CANFD升級?
  • Python自動化辦公(內容)
    python自動化辦公(python操作Excel、Word、PDF、PPT)python使用openpyxl操作excel;python使用PyPDF2和pdfplumber操作pdf;python使用python-docx操作word;python使用python-pptx操作PPT;python如何自動收發郵件;python製作電話號碼歸屬地查詢工具;一:python
  • 測試人員如何高效進行資料庫備份?
    測試工程師在測試軟體的過程中,不僅需要在界面上操作,還需要檢查資料庫中的數據是否正確。從而在軟體出問題時,能夠定位問題的原因。所以,測試人員需要經常進行資料庫操作。在資料庫操作時,測試人員最害怕的就是資料庫中的數據因為「手滑」導致數據丟失。如果丟失,嚴重的話,會給公司造成損失;即使不嚴重,也會讓公司對個人印象產生「不細心」的差評。如果不能徹底解決資料庫數據丟失的問題,相信測試人員在進行資料庫操作的時候,肯定是「畏首畏尾」,帶著這種心態如何能搞好工作呢?
  • 您需要知道的有關Selenium雲端測試都在這裡
    Selenium簡介與特點 作為一種非常流行的開源測試框架,Selenium可以被用來創建各種可擴展的測試用例。它不但能夠模擬用戶與目標網站之間的交互,而且可以使用由Java、Python、PHP、Ruby、C#等多種語言編寫的測試腳本,實現自動化的跨瀏覽器測試。
  • NI的「軟體定義自動化測試測量」策略,價值在哪裡?
    NI(美國國家儀器)這家公司在2018年前後,在公司發展的核心策略上做了調整,用NI公司CEO Alex Davern的話來說是:跨業務提供專注,努力成為軟體定義自動化測試與自動化測量系統的領導者。
  • 10kV配網自適應綜合型饋線自動化技術的測試問題及解決措施
    本文就國網定義的配網就地型饋線自動化技術的功能原理進行分析,結合具備饋線自動化功能的饋線終端裝置(feeder terminal unit, FTU),設計符合規範標準的功能實現方案,並結合方案搭建符合規範的饋線自動化測試系統,重點對饋線自動化技術測試過程中遇到的問題以及對應的解決措施進行了深入探討。
  • 如何安裝python3
    如何安裝python3首先找到python的官網: https://www.python.org/然後點擊Download然後選擇對應的版本,這裡選擇的是windows>跳轉到對應的界面以後,選擇python3.5版本,64位下載即可下載完成以後有一個.exe的可執行文件雙擊這個可執行文件,然後進行選擇安裝。
  • 測試案例:如何快捷的使用接口測試框架Karate創建一個API測試?
    應用場景:在API的測試中,測試某些具體數據值,比如返回的結果是否是需求的類型,文件是否是符合且具備完整的數據結構。這些都是必須且很細緻的測試工作。另外,組織、運行測試場景,以及演示測試結果這些也都使得測試人員要更加快速的找到合適的API測試方法。今天就詳細地介紹如何用Karate組織、運行測試場景,以及驗證Json 文件數據的正確性。
  • 企業級雲平臺如何應用Chef,實現雲端自動化配置管理
    Chef 是 IT 自動化平臺,也被稱為部署自動化工具和 DevOps 使能者,可讓用戶創建、部署、變更和管理基礎設施運行時的環境和應用。今天將與您分享Chef在雲管理服務中的應用。Chef Workstation:提供了Chef Server交互的接口,我們在Workstation上創建定義Cookbook,並將Cookbook上傳到Chef Server上,以保證被管機器能從Chef Server上取得最新的配置指令。