手機自動化


要做自動化測試首先肯定需要掌握一門編程語言,python編程語言應該是目前做自動化測試的一個重要選擇。

因為python語言有如下的一些特點:

  1. Python語言更容易掌握,學習成本低;
  2. Python寫出的代碼非常簡潔;
  3. 基於Python語言的測試開發庫和工具也非常的多,比較完整;
  4. python寫代碼的效率比較高;
  5. python的測試腳本相對更容易維護。

下面這個思維導圖是做自動化需要掌握的python的基礎編程能力:

很多人在談到自動化測試的時候通常都是指的UI自動化測試,但是從廣義的角度來說只要是使用工具或者寫代碼完成的測試都是屬於自動化測試的範疇,所以自動化測試可以分為:UI自動化測試、介面自動化測試和性能自動化測試,python語言在這些自動化領域都是有用武之地的。

當然題主問的是手機的自動化測試,手機自動化測試也有兩個方面:

(1)手機的UI自動化測試

可以基於Appium這個平台來完成,支持使用python作為開發自動化測試腳本。

(2)手機的介面自動化測試

手機的介面自動化測試是對服務端跟手機移動應用進行數據交互介面的測試,可以去學習一下基於python語言的request庫,使用request庫提供的API可以向服務端介面發送http請求,從而完成對介面的測試。

當然如果想讓你的自動化測試框架更完善一些需要加入數據驅動的模塊,這就需要你掌握python的文件讀寫、excel讀寫或者資料庫操作,另外如果希望腳本組織得更完美,還需要掌握一個python的單元測試框架,比如unittest單元測試框架。


針對python自動化測試,首先提供一個python學習大綱:

然後針對不同層次的自動化測試推薦的工具套裝組合(原則:主流,能免費則免費,能開源用開源):

B/S自動化測試:python+unittest+selenium;

C/S自動化測試:python+unittest+uiautomation;

APP自動化測試:python+unittest+appium/uiautomator2;

介面自動化測試:python+unittest+requests。

最後,如果想學python自動化測試,可以關注下我的賬號和下方專欄,相關技術文章正在不定期更新中。祝好運,加油!

selenium自動化測試?

zhuanlan.zhihu.com圖標

首先你要學會python這個語言基礎

比如:

1、 變數,數據類型轉換,運算符,輸出輸入

2、 判斷語句和循環語句,if、else、elif、while、for等關鍵詞

3、 字元串、列表、元祖、字典、集合等

4、 函數,還有函數裡面的操作,以及文件的操作等

5、 還必須學習面向對象的思想,以及對封裝,繼承,多態等概念的了解

6、 最後異常、模塊也需要學習

7、 在模塊中有有關於自動化的比如,selenium,框架unittest,pytest,等

給大家一個簡單的python自動化腳本


我經常遇到這樣的場景:老師,我有python or java基礎,但還是不知道怎麼寫代碼?老師,我有代碼基礎,簡單的不用學,我想學高級的。老師,我有編程基礎,但是我看不懂代碼。。。。。。諸如此類的問題,我想大家也一定有這些內心的OS

面對這樣的場景,這樣的問題,我也問了不少童鞋,得到的答案其實聽悲哀的。莫過於說些代碼太難了,不會不懂;這個代碼寫的不詳細導致我看不懂;我有編程基礎的,是你寫的代碼太爛了。。。。。諸如此類把問題全部歸於他因的。。。可悲之處明理之人應該懂的了。。。。

好了,言歸正傳吧,就類似於這樣的問題我這裡統一說說我的想法和學習技巧吧,有不對的地方請多多包涵,我也是low逼之人,所以難免也有說的不對不妥的地方,喜歡贊之、轉之,不喜歡笑之、棄之即可。

有資料奉上,可以看看,鏈接:http://pan.baidu.com/s/1v-HeDu8fJ1MMUlsVHs5ydg 提取碼:muy3

1、學習自動化測試,或者說些代碼,核心是學習思想,實現一個框架或功能的思想,沒有這個思想你就算會77種編程語言都沒卵用。那這裡說的思想是什麼呢?舉個栗子,你想完成一個從excel讀取用戶名和密碼並進行登錄的case,你要怎麼設計,這就是思路。

大部分我見的童鞋包括我帶的學員,一上來就是寫代碼,其實這是最忌諱的,構思邏輯、代碼結構才是第一步,最後一步才是寫代碼,本末倒置,你說能寫的出來嗎?

2、所謂我有編碼基礎,在我碰到的大部分人中,可以解讀為我學會編程,但現在忘了,我會hello world,這個不算有基礎,撐死算有編碼的概念而已。這也就是你為啥寫不出來,看不懂的最根本原因。

上面指出了大家的問題,那麼接下來就I看看應對方法。這裡我特別想多說一句:能真誠的給你指出問題的人值得感恩(雖然刺耳),多去提升自己的不足少去抱怨別人的不好是使你成為大神最快的捷徑。

學習自動化測試或編程基本的路徑:

第一條:認知(包括概念,意義等)&>熟悉某一門編程語言(python or java)&>從簡單固定的例子開始不斷練習(跑起來最重要,理解最不重要)&>練習中培養自己解決問題的思路(理解的過程)&>組織更複雜的框架&>不斷總結

第二條:模仿&>跑起來&>理解&>轉換為自己的

1、自動化測試的認知我就不多說了,在我的新書《小強軟體測試瘋狂講義》中已經詳細說過了

2、熟悉一門編程語言,注意我的用詞是熟悉,不是知道,不是了解,不是會hello world,而是你可以熟練的隨便寫一個簡單的demo出來,掌握了一般的編程、調試方法。至於大家糾結的學python還是java,沒所謂的,都可以,你喜歡哪個就學哪個,有java基礎的就學java,沒有的學python入門會快點。編程語言這個東西本質都一樣,只是語法有差異,思想都想通的。

3、不要看不上簡單的例子,有多少人口口聲聲說的我有代碼基礎,結果卻學的一塌塗地。。。。用個詞語形容:眼高手低。學代碼就要先模仿,讓代碼跑起來,然後再去理解。很多童鞋一上來就要理解理解,為什麼為什麼,代碼都沒跑起來理解各毛線啊,為什麼個p啊(sorry,情不自禁的爆粗口了,哈哈,原諒我的任性)

這和你學開車一樣,模仿,練習,慢慢的明白汽車的各個原理,加什麼油,為什麼後排中間有突起啥的了。我經常和我的學員說,學習最忌諱的是開始就陷入細節,一味追求理解。因為很多所謂的理解是需要你有足夠的知識、閱歷和經歷沉澱才能做到的!

4、回到上面問的那個登陸的問題,我們就說說核心的思想。拿到這個問題不是去實現寫代碼,而是去想實現他的思路和構成,這個過程不涉及具體的細節,不考慮是否能真的實現。我們來看下這個過程:

a、拆分問題。本題可拆分為python讀取excel(還要考慮excel怎麼設計更方便讀取)、讀取出來的數據如何存儲、存儲之後的數據如何放到對應的用戶名和密碼上

b、逐步實現。以selenium為例,先把用戶名和密碼元素識別出來且寫死數據,至少保證代碼可以運行起來。不要上來就想我用戶名要是好幾個怎麼實現呀。一個寫死的用戶名你都沒跑起來代碼想那麼多干毛線啊。

c、實現python讀取excel數據並保存

d、用讀取保存的數據去替換對應的用戶名和密碼

e、完善代碼加入異常處理機制。不要一開始就想報錯了怎麼辦,用戶名密碼不對了怎麼辦,測試的基本思想怎麼關鍵時間都丟失了呢。。。做功能測試我們都知道先正,後反啊,怎麼到了寫代碼的時候就忘記了呢。

f、運行好了,理解了,可以慢慢在優化,比如加入unittest、htmlreport等

在整個上述的過程中,很多代碼都是固定的,比如unittest的用法格式就是固定的,先記住怎麼用,用起來再說。很多人老學別人去看源碼,你的有一定基礎了才行啊,不然看源碼簡直是雪上加霜。

最後,學習是一個過程,是一個步驟,和生成一輛汽車一樣,不要跳著學習,能跳級的童鞋畢竟是少數,踏踏實實的一步步學,越往後你會發現效率越高,有時候我們以為的我們以為真的不是我們以為的那樣。。。。。。就和你開車,你的先讓車跑起來才能想怎麼變道安全,怎麼超車安全,怎麼側方停車啊。。。。

PS:有些東西文字不好表達,還的靠大家意會。。。。。。。幸苦大家了


1、了解Python的基礎語法、基本數據類型,詳情如下:

2、Python函數、文件操作、異常處理,詳情如下圖:

3、類與對象

4、類和對象應用-openpyxl、logging、unittest、ddt

Python學到以上程度就可以做自動化測試了。

--文末福利:自動化測試視頻匯總 提取碼:6t33 ----

如果提取碼失效的話,可以找我重新領取,希望以上回答能夠幫助你


其實單看理論知識,不好學會,因為沒有一個目標。換種思路以案例給大家介紹一下,Python做自動化需要學到哪種程度呢?

如果給你一個可以做自動化的項目,你要怎麼做自動化?

--項目--

8大模塊,---2000左右用例數;

一、熟悉業務、需求文檔/手工測試/產品。了解模塊之間的關係/測試人員

在遇到這個項目的時候,第一個問題一定是想到上述內容,其實這裡應該有一個全局思維。不僅是怎麼去開始寫自動化代碼,而是能用代碼幫助別人解決什麼更繁瑣的問題?

二、了解業務之後,開始分析---系統中哪些模塊比較適合做自動化,哪些不適合?

  • 歷史穩定性,功能複雜性&>&>&>&>功能太複雜的模塊就不適合自動化,要從簡單一些的入手。
  • 模塊核心&>&>&>&>每個系統都有自己非常核心的模塊;
  • 使用頻率模塊,哪一個模塊Bug率目前偏高(這個模塊經常出歷史功能的問題)
  • 測試團隊、產品團隊中與用戶接觸的比較高的人開個會交流下,看下哪個模塊需要做比較高的維護工作;
  • 篩選了2個模塊,400個測試用例;
  • 如果是介面,就看介面有多少個,每個介面要設計多少個用例
  • 介面自動化用例需達到80-100%

注意:先分析在哪一個模塊來做,能夠得到最快的產出比,最快見效的是什麼模塊?

三、功能測試---400個---從功能測試用例中去篩選自動化用例---核心模塊的核心功能、主流程、主功能點===140個用例---用例評審&

  • 在這個階段,要先對模塊做用例設計,其實在參與手工測試過程就是了解這個項目的模塊。
  • 因為還不知道項目的人員安排和要做多久,具體也不太了解這個模塊的情況。
  • web自動化最大的目的就是負責主流程,異常流程分情況,如果它容易實現沒有太大難度就可以做,如果異常場景比較極端,條件準備比較複雜,就可以不去實現它的自動化。

重點!其實要做自動化是需要部門領導支持的,不然他給你大量的功能測試的工作。如果就你一個測試,就根據上面的3點,自己進行篩選,做完和上級領導彙報一下。需要告訴領導為什麼這麼選,選出來的結果是什麼,目標是什麼。

四、自動化計劃

終於要到這一步了,自動化類型:web/api

1.要提前寫清楚,為什麼選擇了這兩個模塊,為什麼要用140個用例;

2.還要告訴領導,需要花多少時間框架選型,一般就是需要半個月內;框架選型主要是考慮團隊中其他人的水平,如果沒有人就你一個,自己寫代碼順手就自己寫;

需要寫清楚的計劃是:

如何搭建公司自動化框架??

常用的配置文件,日誌文件等都封裝成模塊,需要套不同的業務場景,進行優化細化,如果換了項目,就把原來的業務上case刪除,可以做新的業務;

以上還沒有涉及到Python要學什麼吧~其實很多沒有接觸過自動化測試的小夥伴,你直接告訴他Python要學什麼語法,這些我覺得看了懂了,但是就忘了,只有以案例說話,才能更好的理解自動化該如何做。上述僅僅分享自動化接手的流程。

第二階段:Python學什麼?如何學?

首先要知道python的歷史&>&>&>數據類型&>&>&>常用操作符&>&>&>Python的數組、元組、字元串;

else和with語句&>&>&>Python的粉盒循環&>&>&>函數&>&>&>內嵌函數和閉包&>&>&>lambda表達式&>&>&>初識遞歸&>&>&>遞歸求解漢諾塔&>&>&>Python序列&>&>&>永久儲存&>&>&>文件&>&>&>字典&>&>&>集合&>&>&>圖形用戶界面入門&>&>&>變數和字元串&>&>&>文件系統&>&>&>異常處理&>&>&>類和對象&>&>&>構造和析構

第一階段要學習的知識點:

圖片從左到右看,不許盜我圖

學習線路圖這個階段的學習目標:

  • 掌握資料庫、操作系統、控制版本;
  • 能夠熟練運用所學技術搭建各類伺服器環境
  • 深入理解軟體開發過程的各種問題;

別再做功能測試了快來解鎖新技術(1) - 樂搏軟體教育 - 軟體測試 - Powered By EduSoho?

www.17lebo.com圖標別再做功能測試了快來解鎖新技術(2) - 樂搏軟體教育 - 軟體測試 - Powered By EduSoho?

www.17lebo.com圖標

第二階段:Python+MySQL資料庫交互應用

·pymysql模塊引入及使用

·Python中的對資料庫做增刪改查等操作

·Fetchone/Fetchall等查詢操作

·案例演示在資料庫查找數據做登陸操作

·MySQL與Python的測試驗收考試、考題講解

第二階段學會效果:

掌握資料庫基本操作,學會Python+資料庫交互應用。

第三階段:Web前端技術精講

·Web前端技術之:HTML技術

·HTML常用標籤及實例講解

·HTML與CSS實例結合

·JavaScript簡介與基本語法

第三階段學會效果:

熟悉Web前端主流技術,為後期學習UI元素定位打好基礎與鋪墊

第四階段:Web端Selenium自動化操作

·學習web頁面基礎知識

·自動化框架Selenium介紹和環境準備與搭建

·Python+Sleenium實現對系統界面的操作

·Python內置csv模塊以及應用

第四階段學會效果:

自動化常用設計模式頁面對象模型腳本編寫,Sslenium結合多線實戰項目。

第五階段:介面自動化講解與實戰

·TCP/IP協議、JSON數據

·Python+Requests庫實現介面自動化

·其他介面測試工具POSTMAN

·其他介面測試工具Jmeter

·其他抓包工具FIDDLER

第五階段學會效果:

熟練掌握介面自動化技術,從代碼腳本+庫實現到其他主流工具的操作實現介面自動化

第六階段:移動端Appium自動化操作

·Appium測試環境搭建

·Android模擬器/Android Studio

·Appium測試基礎到實戰

·Jenkins環境部署以及綜合實戰

第六階段學會效果:

掌握Appium手機自動化測試知識,自動化測試相關工具的使用

第七階段:RobotFramework+Web端自動化

·Robot Framework框架介紹、RF+Python環境搭建

·Robot Framework+Selenium2Library庫Web測試

·Robot Framework語法之執行dos命令、Python語句

·Robot Framework+Web端自動化項目實戰

第七階段學會效果:

獨立完成web/app自動化工作


想用Py做自動化,至少也要熟悉以下幾點:

基本數據類型:不可變數據(3 個):Number(數字)、String(字元串)、Tuple(元組)

可變數據(3 個):List(列表)、Dictionary(字典)、Set(集合)

運算符:算術運算符、邏輯運算符、賦值運算符、比較運算符、位運算符...

數值類型:整型(Int)、浮點型(float)、複數(complex)

條件控制語句:if...elif...else 語句

循環語句:while 語句、for 語句

函數:def 定義函數、函數調用、參數傳遞、匿名函數...

迭代:迭代過程、迭代器、生成器、生成器表達式

文件操作:open()函數、read、readline、readlines、write...方法

os 模塊:處理系統文件和目錄

模塊:模塊導入、常用標準模塊、常用第三方庫

錯誤和異常:try/except 語句


Python水平不好,說說java吧,一直學基礎知識,一直學,我平時很少大塊時間學習java基礎,都是看博客和文章講某一個知識點,重點是積累。

到哪種什麼地步呢,等到你只能去看國外的英文文檔為止,靠著翻譯工具不斷學習(我英文不好)。

一門語言學足夠了,做什麼都差不多。


這個問題真沒一定的。我覺得能把項目需求解決了的程度。比如Python都是寫一些腳本,跑一些自動化case。最基本的賦值、循環、判斷、打log這些首先掌握就可以寫簡單地case。學會後再循序漸進加深學API

除了金陽光提到的,我覺得你還要學會導入庫

以及工具的運用api,比如appium。

我個人Python也是入門,不過你得要知道自動化相關流程才能有個方向


推薦閱讀:
相关文章