Appium+python自動化(四十二)-Appium自動化測試框架綜合實踐- 壽終正寢完結篇(超詳解)

1.簡介

 按照上一篇的計劃,今天給小夥伴們分享執行測試用例,生成測試報告,以及自動化平臺。今天這篇分享講解完。Appium自動化測試框架就要告一段落了。html

2.執行測試用例&報告生成

 測試報告,宏哥已經講解了testng、HTMLTestRunner、allure等等,今天就在講解一個新的測試報告BSTestRunner。這個有的小夥伴有問到,因此在這裏特意的給這部分的小夥伴們演示一下。python

2.1 下載BSTestRunner

直接輸入網址,下載後,引入項目中便可。git

BSTestRunner下載地址github

關於這部分能夠看宏哥的一個實例:demoweb

2.2 run.py

執行全部測試用例。這個是全部框架的入口。app

2.3參考代碼

# coding=utf-8
# 1.先設置編碼,utf-8可支持中英文,如上,通常放在第一行

# 2.註釋:包括記錄建立時間,建立人,項目名稱。
'''
Created on 2019-11-21
@author: 北京-宏哥   QQ交流羣:707699217
Project:Appium自動化測試框架綜合實踐 - 壽終正寢完結篇
'''
# 3.導入模塊
import unittest
from BSTestRunner import BSTestRunner
import time,logging
import sys
path='D:\\kyb_testProject\\'
sys.path.append(path)

test_dir='../test_case'
report_dir='../reports'

discover=unittest.defaultTestLoader.discover(test_dir,pattern='test_login.py')

now=time.strftime('%Y-%m-%d %H_%M_%S')
report_name=report_dir+'/'+now+' test_report.html'

with open(report_name,'wb') as f:
    runner=BSTestRunner(stream=f,title='Kyb Test Report',description='kyb Android app test report')
    logging.info('start run test case...')
    runner.run(discover)

注意:框架

pattern參數能夠控制運行不一樣模塊的用例,以下所示表示運行指定路徑以test開頭的模塊工具

discover = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py')學習

3.Bat批處理執行測試

前面腳本開發階段咱們都是使用pycharm IDE工具來運行腳本,可是當咱們的腳本開發完成後,還每次打開IDE來執行自動化測試就不合理了,由於不只每次打開比較麻煩,並且pycharm內存資源佔用比較「感人」!這樣很是影響執行效率。 針對這種狀況,咱們可使用cmd命令或者封裝爲bat批處理腳原本運行。測試

3.1啓動appium服務

啓動appium服務經過批量處理腳本。

3.1.1start_appium.bat

 3.1.2參考代碼
@echo off
appium
pause

@echo off 爲關閉「回顯」,讓命令行界面顯得整潔一些。

3.2執行測試用例

執行測試用例就是說到底就是經過批量腳本執行框架入口文件run.py。

3.2.1run.bat

3.2.2參考代碼
@echo off
d:
cd D:\kyb_testProject\test_run
C:\Python35\python.exe run.py
pause

3.3注意事項:

3.3.1執行以前須要在run.py腳本添加以下內容:

import sys

path='D:\\kyb_testProject\\'

sys.path.append(path)

項目在IDE(Pycharm)中運行和咱們在cmd中運行的路徑是不同的,在pycharm中運行時, 會默認pycharm的目錄+咱們的工程所在目錄爲運行目錄。

而在cmd中運行時,會以咱們的工程目錄所在目錄來運行。在import包時會首先從pythonPATH的環境變量中來查看包,若是沒有你的PYTHONPATH中所包含的目錄沒有工程目錄的根目錄,那麼你在導入不是同一個目錄下的其餘工程中的包時會出現import錯誤。

3.3.2.以上腳本編碼格式必須爲utf-8

4.自動化測試平臺

前面咱們已經開發完測試腳本,也使用bat批處理來封裝了啓動Appium服務和運行測試用例。可是仍是不夠自動化,好比我想天天下班時自動跑一下用例,或者當研發打了新包後自動開始運行測試腳本測試新包,那麼該如實現呢?

4.1持續集成(Continuous integration)

持續集成是一種軟件開發實踐,即團隊開發成員常常集成他們的工做,經過每一個成員天天至少集成一次,也就意味着天天可能會發生屢次集成,簡稱CI。每次集成都經過自動化的構建(包括編譯,發佈,自動化測試)來驗證,從而儘早地發現集成錯誤。

4.2Jenkins簡介

Jenkins是一個開源軟件項目,是基於Java開發的一種持續集成工具,用於監控持續重複的工做,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。

4.3下載與安裝

下載地址:https://jenkins.io/download/

下載後安裝到指定的路徑便可,默認啓動頁面爲localhots:8080,若是8080端口被佔用沒法打開,能夠進入到jenkins安裝目錄,找到jenkins.xml配置文件打開,修改以下代碼的端口號便可。

<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%BASE%\war"</arguments>

4.4構建觸發器

  1. 觸發遠程構建:若是您想經過訪問一個特殊的預約義URL來觸發新構建,請啓用此選項。
  2. Build after other projects are built:在其餘項目觸發的時候觸發,裏面有分爲三種狀況,也就是其餘項目構建成功、失敗、或者不穩定的時候觸發項目;
  3. Build periodically 定時構建
  4. GitHub hook trigger for GITScm polling,根源Git的源碼更新來觸發構建
  5. Poll SCM:定時檢查源碼變動(根據SCM軟件的版本號),若是有更新就checkout最新code下來,而後執行構建動做。以下圖配置:

      */5 * * * * (每5分鐘檢查一次源碼變化)

4.5jenkins定時構建語法

這是其實就是corn表達式,幾分鐘就能夠掌握,有興趣的能夠百度一下,花費幾分鐘簡單的學習一下。

* * * * *

(五顆星,中間用空格隔開)

  • 第一個*表示分鐘,取值0~59
  • 第二個*表示小時,取值0~23
  • 第三個*表示一個月的第幾天,取值1~31
  • 第四個*表示第幾月,取值1~12
  • 第五個*表示一週中的第幾天,取值0~7,其中0和7表明的都是週日

4.6使用案例

天天下午下班前18點定時構建一次

0 18 * * *

天天早上8點構建一次

0 8 * * *

30分鐘構建一次:

H/30 * * * *

注意:關於jenkins的詳細知識,能夠看宏哥的:jenkins系列文章

5.小結

到此,Appium自動化測試框架就所有完成了,聰明的你都懂了嗎???框架本身搭建起來嗎???嘿嘿!慢慢地來吧。

相關文章
相關標籤/搜索