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

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

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

        千鋒教育

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

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

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

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

        使用Python自動(dòng)化測(cè)試iOS項(xiàng)目

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

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

        1、pullgit倉(cāng)庫(kù)里面的最新代碼到本地。

        2、然后打包成App。

        3、安裝到模擬器上。

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

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

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

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

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

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

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

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

        importos

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

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

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

        把iOS項(xiàng)目打包成App,下面的Demo是項(xiàng)目的名字

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

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

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

        xcodebuild命令是XcodeCommandLineTools的一部分。通過(guò)調(diào)用這個(gè)命令,可以完成iOS工程的編譯,打包和簽名過(guò)程??梢允褂脁codebuild–help來(lái)看看具體有哪些功能。

        打開(kāi)iOS模擬器,這里運(yùn)行的是iPhone6Plus你也可以換成其它型號(hào)的模擬器

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

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

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

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

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

        booted后面接的是.app的路徑,我打包的時(shí)候的是Debug,所以這個(gè)的文件夾名稱(chēng)是Debug-iphonesimulator。

        在模擬器里運(yùn)行App

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

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

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

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

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

        python發(fā)送郵件

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

        Python對(duì)SMTP支持有smtplib和email兩個(gè)模塊,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'自動(dòng)化測(cè)試郵件

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

        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請(qǐng)您保持通訊暢通,專(zhuān)屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
        免費(fèi)領(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
        Python中的'==' 和 'is'

        ==和is是Python對(duì)象比較中常用的兩種方式,==比較對(duì)象的值是否相等,is比較對(duì)象的身份標(biāo)識(shí)(ID)是否相等,是否是同一個(gè)對(duì)象,是否指向同一個(gè)內(nèi)存...詳情>>

        2023-11-06 23:38:43
        Python內(nèi)存分配

        一、前言大多數(shù)編譯型語(yǔ)言,變量在使用前必須先聲明,其中C語(yǔ)言更加苛刻:變量聲明必須位于代碼塊最開(kāi)始,且在任何其他語(yǔ)句之前。其他語(yǔ)言,想C...詳情>>

        2023-11-06 22:33:55
        Python 腳本自啟動(dòng)及定時(shí)任務(wù)

        讓Python隨Linux開(kāi)機(jī)自動(dòng)運(yùn)行1、準(zhǔn)備好要自啟的腳本auto.py2、用root權(quán)限編輯以下文件sudovim/ect/rc.local3、在exit0上面編輯啟動(dòng)腳本的命令/u...詳情>>

        2023-11-06 21:57:55
        python字符串處理相關(guān)函數(shù)

        python中字符串中字符大小寫(xiě)的變換:*S.lower()#小寫(xiě)*S.upper()#大寫(xiě)*S.swapcase()#大小寫(xiě)互換*S.capitalize()#首字母大寫(xiě)*String.capwor詳情>>

        2023-11-06 21:54:19
        如何在Linux中運(yùn)行Python源文件

        一??蓤?zhí)行的Python程序這部分內(nèi)容只對(duì)Linux/Unix用戶(hù)適用,不過(guò)Windows用戶(hù)可能也對(duì)程序的第一行比較好奇。首先我們需要通過(guò)chmod命令,給程序...詳情>>

        2023-11-06 21:50:43
        宽甸| 卢湾区| 霍城县| 盈江县| 彭山县| 华容县| 泊头市| 庄河市| 莒南县| 桂东县| 乃东县| 台北市| 廊坊市| 马鞍山市| 武汉市| 烟台市| 秀山| 湄潭县| 天台县| 嘉峪关市| 衡阳市| 庆城县| 子洲县| 内乡县| 景谷| 佛坪县| 门头沟区| 广丰县| 乳山市| 靖西县| 体育| 正宁县| 渭南市| 金沙县| 滨州市| 镇江市| 伊金霍洛旗| 卢湾区| 南平市| 手游| 公主岭市|