發表於2024-11-10
本書是資深互聯網高級工程師阿奎結閤自己多年的經驗寫就的一本指導初學者學習Python編程和自動化測試中的HTTP接口測試的書。通過闖關遊戲式的獨特學習模式,通過在綫讀者圈增值服務,指導讀者掌握高效學習計算機編程和應用。
本書主要包含三部分內容,第一部分為Python編程基礎,第二部分是HTTP協議,第三部分是HTTP接口測試實戰。讓讀者可以從零開始,逐步掌握Python語言,具備基本的Python編程基礎。通過練習的方式瞭解HTTP協議中常用的概念和機製。最後,將兩者相結閤,學會用Python進行HTTP接口測試,主要采用Python的單元測試方法進行HTTP接口測試工作,通過一步一步的練習,讀者會掌握unittest單元測試框架的使用,掌握測試數據的外部化(到文件和到Excel等),掌握HTTP接口的發現和探測。 本書亦學亦練,學練結閤,每個章節分為多個小節,每個小節的前半部分會對本小節的知識點主題進行詳細的介紹,後半部分會啓動一個練習,讓讀者邊閱讀邊練習,在練習中檢驗學習的成果。
作者自2004年4月-至今 一直在中國銀行軟件中心從事銀行係統軟件開發工作,曆任程序員,軟件工程師,團隊經理,係統分析師。2013-2016年度,主要從事互聯網技術在銀行業的應用開發工作,參與係統分析和架構設計,負責敏捷開發工藝的推廣和團隊管理工作。在軟件開發、技術團隊管理和培訓方麵有豐富的經驗和獨到的心得。
2.3 Restful接口
REST是一種互聯網軟件架構原則,即Representational State Transfer的縮寫,由Roy Thomas Fielding在其2000年的一篇論文(Architectural Styles and the Design of Network-based Software Architectures)中提齣。
The Representational State Transfer (REST) style is an abstraction of the architectural elements within a distributed hypermedia system. REST ignores the details of component implementation and protocol syntax in order to focus on the roles of components, the constraints upon their interaction with other components, and their interpretation of significant data elements. It encompasses the fundamental constraints upon components, connectors, and data that define the basis of the Web architecture, and thus the essence of its behavior as a network-based application.
錶徵狀態轉移(REST)風格是分布式超媒體係統中的架構元素的抽象。REST忽略瞭組件實現和協議語法的細節,以便聚焦於組件的角色,組件間交互的約束以及對重要數據元素的解釋。組件、連接器和數據是定義Web架構的基礎,REST涵蓋瞭對這三要素的基本限製,從而,也涵蓋瞭三要素作為基於網絡的應用程序的行為本質。
以上內容引用、翻譯自論文“5.2 REST Architectural Elements”小節,地址為:https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm。
通俗地講,REST風格的架構就是一種將要操作的業務數據作為資源,分配一個固定的URL地址,然後,通過HTTP的四個請求方式:POST、DELETE、PUT、GET,分彆對應業務數據的增、刪、改、查四種操作。
比如,我們有一個客戶信息,給定一個URL為http://www.example.com/ customer,那麼,可以通過對這個URL分彆發送四個請求方式對應四個針對某一條業務數據的操作:
● POST請求 /customer 創建一個新的客戶。
● DELETE請求 /customer/111 刪除id為111的客戶。
● PUT請求 /customer/111 更新id為111的客戶的信息。
● GET請求 /customer/111 查詢id為111的客戶的信息。
雖然從原理上來說,REST架構風格是無關乎通信協議的,但是在實際使用過程中,絕大部分REST架構組件之間的通信接口,也就是所謂的Restful接口,都是采用的HTTP作為其通信接口協議的。所以,一個Restful接口的請求,實際上很多情況下與一個普通的HTTP請求並無本質的區彆。
通過對Ajax和Restful的簡單瞭解,我們可以看到,隨著互聯網的發展,前後颱部件之間以及網絡應用組件之間的新的結構風格和通信機製層齣不窮,而HTTP協議在這些新的架構風格和通信機製中扮演瞭非常重要的基礎通信協議的角色。
對於一名測試人員來說,掌握接口測試,掌握HTTP協議,進而掌握HTTP協議下的接口測試已經變得日益重要起來。
序一
身處軟件開發這個頗具顛覆性的行業,又恰逢智能技術的爆發期,很多認知都在被刷新著。和阿奎相識源於組織的敏捷轉型閤作,初幾次見麵印象是此人技術問得很細,聊瞭很多關於代碼重構和自動化測試的觀點,這可能也是敏捷圈子裏最能夠試探彼此是否為圈內人士的方法。那個時候關於“測試已死”的觀點還是頗為流行的,當然意思是傳統的人肉測試最終都會被自動化測試所取代,而開發人員通過測試驅動開發這樣的技術實踐自然就能生成自動化測試集,那專職測試還留著作甚?
前兩周圈子裏的人工智能專傢給我轉來一篇論文,快速掃描後大意是一組科研人員正通過語義和圖形分析的技術對算法類論文進行直接算法生成,也就是說給這程序一個算法描述,它就還你一個真正的算法實現。當然現實中給一個高保真網頁圖片,還你一個真實網站的在綫服務已經存在瞭。稍加思索你會得齣一個具有諷刺意味的推論:是不是“開發已死”?具備一定智能的程序已經可以自己産生相應的程序瞭。而測試卻好像並沒有死,反而這兩年從探索性測試到針對新交互渠道的感知測試還越來越火瞭。
看到這本書的時候,很高興當年和阿奎討論的一個觀點現在仍然是對的,那就是“測試人員必須寫代碼”。不管是現代的分布式互聯網應用,還是即將到來的物聯網設備,其測試的難度都提升瞭很多,甚至可以說如果不采用自動化的程序是不可能進行有效測試的。想像一下把應用商城刷積分的人肉模式復製到未來一平米可能有上萬個物聯網設備接入的場景下,你可能需要一個Alpha Go來完成這樣的“人肉”測試。有幸的是我認識瞭幾位把測試人員寫代碼真正貫徹和執行下去的管理者,阿奎就是其中一位。
Python作為編程語言自不用多講,曾經在測試領域因為其靈活性大受歡迎,積纍瞭不少有用的測試庫,即使現在很多項目上我們還會日常使用。而大數據時代的來到更催生瞭這門語言的學習熱潮,不少業務人員開始學習Python作為數據分析的編程語言。時下的大數據分析不同於之前既定規則的數據處理,更多是在大數據中去挖掘和探索,某種意義上我們又何嘗不可以說是在進行“數據測試”呢?所以學習Python應該是符閤時代背景高投入産齣比的事情。
從互聯網到移動互聯網,再到物聯網,很多技術都會被改變,最有可能持續發光發熱的“組件”可能就是我們的應用通信協議HTTP瞭。針對HTTP通信的接口測試也是最常見的,經常也是最繁瑣的。學習如何進行有效的自動化是避免自己被機器人取代的必備技能。
最後,很感謝阿奎把自己的學習心得和方法也融匯到瞭此書中。刻意練習是技術學習的不二竅門,如何堅持確是相當有難度的一件事情。和廣大讀者一樣,阿奎並非身處一個純粹的技術公司,日常有很多的管理會議和業務需求,所以他的學習經驗分享更值得大傢藉鑒和試驗。
肖然
精益敏捷專傢
ThoughtWorks谘詢與設計總監
序二
轉眼,阿奎工作已經13個年頭瞭,先後做過程序員、軟件工程師、團隊經理,現在是一名係統分析師和內部敏捷教練,積極地參與組織中的敏捷實踐和推廣工作。
在擔任團隊經理期間,阿奎先後帶過C/C++、Cobol和Java為開發語言的開發團隊,多年來一直保持對技術研發工作的熱愛。最有意思的是,多年以前他還在一個以主機COBOL為開發語言的部門的時候,竟然會去參加以Java為語言棧的編程大賽。
接觸最多的是2013年調到新技術實驗室的時候,那個時候互聯網金融風頭正盛,敏捷開發方法作為一種新的軟件開發方法,正在被各個大型企業所認可和嘗試。那是他接觸敏捷的緣起,甚至可以說也是這本書的緣起。
阿奎自2013年開始從事敏捷實踐和推廣工作,他將自己定位為一名技術性管理者,在從事團隊管理的同時,一直保持著對各種新技術的關注,在工作中對於如何提升團隊的工作效率也多有思考。眾所周知,敏捷開發轉變的核心在於人的轉變,而在人的轉變過程中,人員能力的提升和對新的開發模式的適應又是尤為重要的。
隨著敏捷、精益、DevOps等新的軟件開發理念的盛行,軟件測試的從業人員也正在經曆工作環境和工作要求的改變。這種改變需要軟件測試從業者成為真正的IT人,具備計算機基礎理論知識和網絡知識,掌握一門編程語言,熟悉一個操作係統和一個數據庫。
環顧業內,很多軟件測試從業者都正在經曆從“點點點”工程師到自動化測試工程師的轉變,這個轉變是痛苦的,也是迷茫的。阿奎就是看到瞭這樣一個需要,利用去年下半年和今天一年的業餘時間,寫瞭這本書,其中的每一個練習都是他精心設計的,並且都自己進行瞭實戰和解答。這本書是他專門針對沒有編程基礎的軟件測試工程師如何快速、高效地學會編程這一課題的一次實踐和有益的嘗試。
書中提到的“闖關式學習”實際上就是“刻意練習”的學習思想,在編程語言學習上的實地應用,並且經過他的一些實驗,取得瞭非常好的學習效果。
特彆祝賀阿奎,能夠將自己長期工作、學習的收獲和所得,通過一本書的形式進行一次總結,特彆是這樣一本幫助大傢學習編程的書。
薛勇
主任工程師
中國銀行軟件中心
前 言
每個人都應該花1年時間學習編程。
——喬布斯
我一直以來有一個觀點,對於希望從事自動化測試工作或者希望掌握自動化測試技能的人士,掌握一門計算機語言是繞不過去的一個坎。就是這個坎,讓很多從事手工測試的工程師對於自動化測試工作望而卻步,這讓很多人不由自主地退而求其次,轉嚮去學習一些自動化測試的工具,來迴避語言學習的睏難。
看到身邊很多的測試工程師對待編程語言的學習畏之如虎,談之無力,讓我産生瞭“為希望轉型成為自動化測試工程師的軟件測試從業者提供一本靠譜的編程語言學習指導書”的想法。這也是促成這本書初稿形成的原始動力。
隨著信息技術的發展,計算機辦公技能成為一名現代白領工作者的必備技能,我們日常工作中有很多的時間都是在與計算機進行交互。通過對計算機語言的學習,可以為你打開一扇與計算機進行深層次互動交流的大門。同時,在編程語言的學習中,你會學到一種新的思考方式並找到另一種看待問題、解決問題的視角。
本書的內容包含兩部分:Python編程基礎和基於Python的HTTP接口測試。
在Python編程基礎部分,主要關注Python語言的基礎知識的學習和掌握,這一部分對於每一名希望快速掌握一門計算機語言的學習者都是適用的。
基於Python的HTTP接口測試部分,重點麵嚮希望轉型為自動化測試工程師的軟件測試從業者,以HTTP接口測試為應用場景,來學習和掌握Python的相關知識點和使用技巧。
本書以闖關式學習方法為指導進行編寫,讓讀者通過一個一個小的關卡的刻意練習,在不知不覺中掌握“Python編程基礎”和“HTTP接口測試”的相關技能,完成從手工測試工程師到自動化測試工程師的轉變。
所謂闖關式學習方法,通俗地講,就是通過不斷的刻意練習,打通一個一個的練習關卡來進行自我提升和學習的方法。闖關式學習方法首先要求有一名有經驗的指導者,針對學習目標刻意設計的一個又一個的練習關卡,即挑戰問題,讀者通過一定的前期知識的學習和練習後,在給定的時間內對第一個關卡的問題發起挑戰,即闖關。如果給定的時間內不能有效地完成挑戰問題,就需要反復的刻意練習,直至輕鬆完成挑戰問題為止,即闖關成功。此時,進入下一個練習關卡。
我一直認為,學習軟件開發、測試技能,和學習騎自行車、遊泳一樣,是一項技能的修煉,而非僅僅是知識或者概念的掌握,而要習得一項技能需要“刻意地練習”。
作傢格拉德威爾在《異類》一書中指齣:“人們眼中的天纔之所以卓越非凡,並非天資超人一等,而是付齣瞭持續不斷的努力。1萬小時的錘煉是任何人從平凡變成超凡的必要條件。”他將此稱為“一萬小時定律”。要成為某個領域的專傢,需要10000小時,按比例計算就是:如果每天工作八個 Python編程基礎與HTTP接口測試 下載 mobi epub pdf txt 電子書 格式
Python編程基礎與HTTP接口測試 下載 mobi pdf epub txt 電子書 格式 2024
Python編程基礎與HTTP接口測試 下載 mobi epub pdf 電子書不錯喲,哈哈哈哈哈哈哈哈
評分好好學習 天天嚮上 加油加油
評分不錯喲,哈哈哈哈哈哈哈哈
評分一直在京東,速度快,質量信得過
評分非常垃圾,建議不要購買
評分非常垃圾,建議不要購買
評分這本書寫得挺好!
評分非常垃圾,建議不要購買
評分不錯喲,哈哈哈哈哈哈哈哈
Python編程基礎與HTTP接口測試 mobi epub pdf txt 電子書 格式下載 2024