minium+python 進(jìn)行小程序自動(dòng)化

一舵鳞、minium框架的簡(jiǎn)介

minium 是為小程序?qū)iT開(kāi)發(fā)的自動(dòng)化框架怀挠,通過(guò)config 管理運(yùn)行設(shè)備埃唯,通過(guò)suite方式管理用例

二撩匕、項(xiàng)目目錄結(jié)構(gòu)

項(xiàng)目目錄結(jié)構(gòu).jpeg
  • case/base/:頁(yè)面公共方法以及頁(yè)面路徑
  • case/locators: 頁(yè)面節(jié)點(diǎn)
  • case/pages/: 頁(yè)面對(duì)象模型
  • outputs/: 測(cè)試報(bào)告
  • test_my/:測(cè)試腳本
  • config.josn: 配置文件
  • sutie.json:管理測(cè)試用例文件

三、元素定位及頁(yè)面操作

元素定位及頁(yè)面操作.png
  • minium.Minium: Minium 負(fù)責(zé)初始化整個(gè)自動(dòng)化框架墨叛,提供了Driver的啟動(dòng)接口止毕,以及測(cè)試結(jié)束之后回收資源能力
  • minium.App: App提供小程序應(yīng)用層面的各種操作,包括頁(yè)面跳轉(zhuǎn)漠趁,獲取當(dāng)前頁(yè)面扁凛,頁(yè)面棧等功能
  • minium.Page: Page提供了小程序頁(yè)面內(nèi)包括set data,獲取控件,頁(yè)面滾動(dòng)等功能
  • minium.BaseElement: Element提供了頁(yè)面元素空間進(jìn)行操作闯传,以及在控件內(nèi)查找子控件的能力
  • minium.Native: 提供了針對(duì)小程序內(nèi)涉及原生控件的操作封裝

四谨朝、Page Object 模式

1、Page Object 采用分層封裝的設(shè)計(jì)思想甥绿,不同層關(guān)心不同的問(wèn)題字币。
2、頁(yè)面對(duì)象層只關(guān)心元素定位問(wèn)題共缕,測(cè)試用例只關(guān)心測(cè)試的數(shù)據(jù)。
3翩活、通過(guò)對(duì)界面元素和功能模塊的封裝減少冗余代碼嫉沽,在后期維護(hù)中魂毁,若元素定位或功能模塊發(fā)生變化咬崔,只需要調(diào)整頁(yè)面元素或功能模塊封裝的代碼垮斯,顯著提高測(cè)試用例的可維護(hù)性。

五、斷言

在測(cè)試用例中,執(zhí)行完測(cè)試用例后,判斷測(cè)試結(jié)果是PASS還是Fail


斷言.png

六购对、運(yùn)行測(cè)試用例

1、運(yùn)行單個(gè)用例生成測(cè)試報(bào)告命令:test.first_test 為單個(gè)用例名稱

minitest -m test.first_test -c config.json -g

2、測(cè)試計(jì)劃 suite.json霜定,通過(guò)suite可以跑多個(gè)測(cè)試用例,測(cè)試用例命名必須包含test
suite.json的pkg_list字段說(shuō)明要執(zhí)行用例的內(nèi)容和順序缘回,pkg_list是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)匹配規(guī)則,會(huì)根據(jù)pkg去匹配包名酥宴,找到測(cè)試類揩环,然后再根據(jù)case_list里面的規(guī)則去查找測(cè)試類的測(cè)試用例》牵可以根據(jù)需要編寫匹配的粒度丰滑。注意匹配規(guī)則不是正則表達(dá)式,而是通配符倒庵。

{
  "pkg_list": [
    {
      "case_list": [
        "test_*"
      ],
      "pkg": "*_test"
    }
  ]
}

執(zhí)行命令

minitest -s suite.json -c config.json -g

七褒墨、測(cè)試報(bào)告:

測(cè)試結(jié)果存儲(chǔ)在outputs下,運(yùn)行命令python3 -m http.server 12345 -d outputs然后在瀏覽器上訪問(wèn)http://localhost:12345即可查看報(bào)告擎宝,如圖:
或者直接通過(guò)命令minitest -s suite.json -c config.json -g也可以生產(chǎn)郁妈,通過(guò)右鍵-選擇瀏覽器打開(kāi)html報(bào)告

image.png

測(cè)試報(bào)告內(nèi)容:

  • 測(cè)試用例運(yùn)行時(shí)間、開(kāi)始時(shí)間绍申、結(jié)束時(shí)間噩咪、總耗時(shí)、單個(gè)用例耗時(shí)
  • 測(cè)試用例case數(shù)极阅、通過(guò)胃碾、失敗、case異常筋搏、通過(guò)率
  • 執(zhí)行環(huán)境
  • 運(yùn)行信息
  • 用例說(shuō)明
  • 運(yùn)行截圖
  • 代碼和堆棧
  • 運(yùn)行日志
  • 小程序日志

八仆百、定時(shí)跑自動(dòng)化項(xiàng)目:

1、創(chuàng)建run.sh文件


run.sh.jpg

2奔脐、項(xiàng)目里面創(chuàng)建run.py文件俄周,設(shè)定時(shí)間定時(shí)跑項(xiàng)目

import os
import datetime

class CheckService(object):
    def __init__(self):
        pass

    def timerFun(self, sched_Timer):
        flag = 0
        while True:
            now = datetime.datetime.now()
            if now == sched_Timer:
                os.system('/Users/macbookair/Desktop/p8care/run/run.sh')
                flag = 1
            else:
                if flag == 1:
                    # 把hours = 1,改成minutes = 1,就變成了每個(gè)小時(shí)定時(shí)任務(wù),改成days = 1
                    # 就變成每天的定時(shí)任務(wù)
                    sched_Timer = sched_Timer + datetime.timedelta(days=1)
                    print('run the timer task at {0}'.format(sched_Timer))
                    flag = 0

if __name__ == "__main__":
    cs = CheckService()
    # 每天10點(diǎn)0分會(huì)執(zhí)行任務(wù)
    sched_Timer = datetime.datetime(2022, 8, 2, 13, 45)
    print('run the timer task at {0}'.format(sched_Timer))
    cs.timerFun(sched_Timer)


九髓迎、參考文檔:

1峦朗、minium文檔:https://minitest.weixin.qq.com/#/minium/Python/readme
2、定時(shí)任務(wù)文檔:
https://developer.aliyun.com/article/642819
https://www.cnblogs.com/royfans/p/7232881.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末排龄,一起剝皮案震驚了整個(gè)濱河市波势,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涣雕,老刑警劉巖艰亮,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闭翩,死亡現(xiàn)場(chǎng)離奇詭異挣郭,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)疗韵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門兑障,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事流译〕言梗” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵福澡,是天一觀的道長(zhǎng)叠赦。 經(jīng)常有香客問(wèn)我,道長(zhǎng)革砸,這世上最難降的妖魔是什么除秀? 我笑而不...
    開(kāi)封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮算利,結(jié)果婚禮上册踩,老公的妹妹穿的比我還像新娘。我一直安慰自己效拭,他們只是感情好暂吉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著缎患,像睡著了一般慕的。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上挤渔,一...
    開(kāi)封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天业稼,我揣著相機(jī)與錄音,去河邊找鬼蚂蕴。 笑死低散,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的骡楼。 我是一名探鬼主播熔号,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鸟整!你這毒婦竟也來(lái)了引镊?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤篮条,失蹤者是張志新(化名)和其女友劉穎弟头,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體涉茧,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赴恨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了伴栓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伦连。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡雨饺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出惑淳,到底是詐尸還是另有隱情额港,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布歧焦,位于F島的核電站移斩,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏绢馍。R本人自食惡果不足惜叹哭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望痕貌。 院中可真熱鬧风罩,春花似錦、人聲如沸舵稠。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)哺徊。三九已至室琢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間落追,已是汗流浹背盈滴。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留轿钠,地道東北人巢钓。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像疗垛,于是被迫代替她去往敵國(guó)和親症汹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容