久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 使用Python自動化測試iOS項目

使用Python自動化測試iOS項目

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-06 21:14:42 1699276482

作為一個開發(fā)人員,為了保證自己的代碼的健壯,寫單元測試是必不可少的環(huán)節(jié),然而最痛快的是每天去手動跑一遍所有的case。那么什么能幫我們解決這些繁瑣的操作呢,大家應(yīng)該會想到自動化測試腳本了,是的,我們可以借助腳本來完成全自動化測試,下面是我列的每天腳本自動執(zhí)行流程:

1、pullgit倉庫里面的最新代碼到本地。

2、然后打包成App。

3、安裝到模擬器上。

4、運行App,執(zhí)行單元測試,生成測試數(shù)據(jù)并保存到本地。

5、腳本讀取測試數(shù)據(jù),郵件發(fā)送給相關(guān)人員。

當(dāng)這些全自動化后,可以大大減少開發(fā)人員的維護(hù)成本,即使每次項目里面有新增模塊后,增加測試case就行了,下面會介紹自動測試這5步具體怎么去執(zhí)行,整個腳本是使用Python寫的,代碼很少功能也很簡單,但這已經(jīng)可以幫我們完成基本的自動化測試了,這就是腳本的強大之處,選擇Pyhton純屬個人喜好,最近也在學(xué)習(xí)Python,當(dāng)然了最終使用什么語言看你自己。

python執(zhí)行shell命令完成測試

首先確認(rèn)本機(jī)上安裝了git和python。

腳本判斷本地是否存在項目,不存在則使用命令gitclone...,存在則使用命令gitpull...。

這些在Linux的命令都可以使用腳本來完成的,python的os.popen()方法就是可以在Linux上執(zhí)行shell命令。

例如:把下面這段代碼添加到一個test.py的文件里,然后在終端上執(zhí)行pythontest.py命令你就會看到,你的當(dāng)前目錄下正在下載我的博客了。

importos

os.popen('gitclonehttps://github.com/leopardpan/leopardpan.github.io.git')

gitpull。。。更新代碼也是一樣的。

接下來的打包、安裝、運行都是使用python執(zhí)行shell命令

把iOS項目打包成App,下面的Demo是項目的名字

os.popen(‘xcodebuild-projectDemo.xcodeproj-targetDemo-configurationDebug-sdkiphonesimulator’)

這行腳本運行完成后,你就會發(fā)現(xiàn)同會生成一個build的文件夾。

Debug參數(shù)表示現(xiàn)在是Debug模式,如果Xcode里面改成Release了,這里需要改成Release。

xcodebuild命令是XcodeCommandLineTools的一部分。通過調(diào)用這個命令,可以完成iOS工程的編譯,打包和簽名過程。可以使用xcodebuild–help來看看具體有哪些功能。

打開iOS模擬器,這里運行的是iPhone6Plus你也可以換成其它型號的模擬器

os.popen(‘xcruninstruments-w“iPhone6Plus”’)

把剛才打包生成的App安裝到模擬器上在安裝之前要先卸載App,不然你運行的永遠(yuǎn)是最初安裝的那個,后來安裝的不會覆蓋之前的,卸載App

os.popen(‘xcrunsimctluninstallbootedcom.test.Demo’)

booted后面接的是BundleIdentifier,我的是com.test.Demo,然后再安裝App

os.popen(‘xcrunsimctlinstallbootedbuild/Debug-iphonesimulator/Demo.app‘)

booted后面接的是.app的路徑,我打包的時候的是Debug,所以這個的文件夾名稱是Debug-iphonesimulator。

在模擬器里運行App

os.popen(‘xcrunsimctllaunchbootedcom.test.Demo’)

booted后面接的是BundleIdentifier,我的是com.test.Demo。

到目前為止,你就會發(fā)現(xiàn)你的項目已經(jīng)運行起來了,你可以在項目是Debug模式下一啟動就執(zhí)行單元測試,然后把對應(yīng)的測試數(shù)據(jù)保存到本地為data.json。然后在使用python腳本讀取測試文件的數(shù)據(jù),最終使用郵件發(fā)送給相關(guān)人員,pyhton讀取數(shù)據(jù)很簡單,一行代碼就行

data=open(‘data.json’).read()

data里面就是json字符串,為了腳本操作簡單,我在存儲的時候直接把json格式的轉(zhuǎn)成了字符串類型。

python發(fā)送郵件

我使用的是SMTP進(jìn)行郵件發(fā)送的,SMTP是發(fā)送郵件的協(xié)議,Python內(nèi)置對SMTP的支持,可以發(fā)送純文本郵件、HTML郵件以及帶附件的郵件。

Python對SMTP支持有smtplib和email兩個模塊,email負(fù)責(zé)構(gòu)造郵件,smtplib負(fù)責(zé)發(fā)送郵件,具體代碼如下:

fromemailimportencoders

fromemail.headerimportHeader

fromemail.mime.textimportMIMEText

fromemail.utilsimportparseaddr,formataddr

importsmtplib

defformat_addr(self,s):

name,addr=parseaddr(s)

returnformataddr((\

Header(name,'utf-8').encode(),\

addr.encode('utf-8')ifisinstance(addr,unicode)elseaddr))

defsend_mail(self,mail,message,title):

from_addr='leopardpan@163.com'

password=''

to_addr=mail

smtp_server='smtp.163.com'

msg=MIMEText(message,'plain','utf-8')

msg['From']=self.format_addr(u'自動化測試郵件

以上內(nèi)容為大家介紹了使用Python自動化測試iOS項目,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://m.2667701.com/

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT