應(yīng)用騰訊課堂測試小樣

公司項(xiàng)目結(jié)構(gòu)縮影

項(xiàng)目目錄下的結(jié)構(gòu)

.
├── __init__.py  # python包的標(biāo)識
├── config   # 基礎(chǔ)配置腳本
│   └── settings.py 
├── data  # 存放測試數(shù)據(jù)
│   └── __init__.py
├── doc  # 測試項(xiàng)目相關(guān)文檔蘑志,以便于后期維護(hù)、新員工參閱
├── element  # 存放定位元素
│   └── until.yaml  # 定位元素yaml文件
├── logs  # 測試腳本運(yùn)行生成的日志文件
├── src  # pytest測試用例存放路徑
└── until  # 存放一些公共函數(shù)活喊、腳本
    └── __init__.py

7 directories, 5 files

執(zhí)行pytest后挽放,會(huì)自動(dòng)生成一個(gè)pytest相關(guān)文件,執(zhí)行allure會(huì)生成一個(gè)報(bào)告文件骡技,初次創(chuàng)建項(xiàng)目鸣个,因此這里沒有體現(xiàn)兩個(gè)該項(xiàng)目

實(shí)現(xiàn)騰訊課堂底部導(dǎo)航的跳轉(zhuǎn)

第一步: 定位相關(guān)元素

分析需要定位的元素

圖一.png

分析圖一可知,編號2中表示的是首頁這個(gè)控件在xml布局中的元素位置布朦,編號3中clickable屬性為true囤萤,說明該元素是可以被點(diǎn)擊的

前幾篇文章中有提到:“定位規(guī)則,優(yōu)先使用ID定位是趴,其次使用class定位涛舍,class一般情況下是不唯一的”,那么問題來了唆途,如何定位不唯一的元素

定位不唯一的元素的核心思想

尋找上級能唯一標(biāo)識自己的父級元素

實(shí)踐一下

圖二.png

分析圖二:
紅色方框內(nèi)是第一個(gè)被綠色框起來的是我們需要的定位元素富雅,該元素沒有ID,那么有人會(huì)說:“我會(huì)xpath肛搬,用xpath不就好了嗎没佑?”我只能告訴你,呵呵噠温赔!這個(gè)是安卓的原生控件蛤奢,你的xpath在這里用不鳥嘍!
這種情景只能乖乖滴使用層級定位方法解決問題
首先確認(rèn)上一級元素是否可以唯一让腹,不是唯一的繼續(xù)往上找远剩,根據(jù)我的經(jīng)驗(yàn)一般不超過三級,就可以找到唯一標(biāo)識自己的元素
如圖二:編號1的id是唯一的骇窍,編號2的class屬性不是唯一的瓜晤,編號3中的第一個(gè)綠色框是我們想要的元素
結(jié)論:“現(xiàn)根據(jù)id定位,再根據(jù)class定位腹纳,多個(gè)class屬性痢掠,沒辦法只能數(shù)數(shù)啦”

第二步:將定位元素保存到y(tǒng)aml文件中

自動(dòng)化測試的核心思想之一:頁面分離,“有時(shí)間再絮叨”
yaml文件內(nèi)容

nav: 
 - com.tencent.edu:id/fa
 - android.widget.LinearLayout

讀取yaml文件的python函數(shù)代碼

import yaml
def read_yaml():
    with open('/xxx.yaml', 'r') as fb:
        print(yaml.load(fb))  #輸出的結(jié)果是{'nav': ['com.tencent.edu:id/fa', 'android.widget.LinearLayout']}  
        
        return yaml.load(fb)  #字典的形式

read_yaml()

yaml非python內(nèi)置模塊驱犹,需要下載 命令:pip install PyYAML

第三步:編寫功能邏輯代碼

from appium import webdriver
from time import sleep
import yaml


def read_yaml():
    with open('xxx.yaml', 'r') as fb:
        return yaml.load(fb)


el = read_yaml()['nav']


class TestKe(object):
    def __init__(self):
        self.d = {
            "device": "android",
            "platformName": "Android",
            "platformVersion": "9",
            "deviceName": "46HDU19314003325",
            "appPackage": "com.tencent.edu",
            "appActivity": ".module.SplashActivity",
            "noReset": "true"
        }
        self.dr = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_capabilities=self.d)
        sleep(2.5)  # 為什么要寫入休眠時(shí)間?

    def change_nav(self):
        a = self.dr.find_element_by_id(el[0]).find_element_by_class_name(el[1]).find_elements_by_class_name(el[1])
        # 0足画、2雄驹、4、6為可點(diǎn)擊的元素對象淹辞,所以代碼這樣寫
        for i in range(0, len(a), 2):
            a[i].click()


if __name__ == '__main__':
    t = TestKe()
    t.change_nav()

生成測試報(bào)告

先賣個(gè)關(guān)子医舆,后期再說,本小記先到此

小記結(jié)語

為什么要添加休眠時(shí)間象缀?休眠時(shí)間有幾種方法蔬将?先讓自己的程序跑起來,再考慮優(yōu)化的問題央星,這就是一種進(jìn)步O蓟场!莉给!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末毙石,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子颓遏,更是在濱河造成了極大的恐慌徐矩,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件州泊,死亡現(xiàn)場離奇詭異丧蘸,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)遥皂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刽漂,“玉大人演训,你說我怎么就攤上這事”戳” “怎么了样悟?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長庭猩。 經(jīng)常有香客問我窟她,道長,這世上最難降的妖魔是什么蔼水? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任震糖,我火速辦了婚禮,結(jié)果婚禮上趴腋,老公的妹妹穿的比我還像新娘吊说。我一直安慰自己论咏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布颁井。 她就那樣靜靜地躺著厅贪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪雅宾。 梳的紋絲不亂的頭發(fā)上养涮,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天,我揣著相機(jī)與錄音眉抬,去河邊找鬼单寂。 笑死,一個(gè)胖子當(dāng)著我的面吹牛吐辙,可吹牛的內(nèi)容都是我干的宣决。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼昏苏,長吁一口氣:“原來是場噩夢啊……” “哼尊沸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起贤惯,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤洼专,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后孵构,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體屁商,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年颈墅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蜡镶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,654評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡恤筛,死狀恐怖官还,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情毒坛,我是刑警寧澤望伦,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站煎殷,受9級特大地震影響屯伞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜豪直,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一劣摇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧顶伞,春花似錦饵撑、人聲如沸剑梳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽垢乙。三九已至,卻和暖如春语卤,著一層夾襖步出監(jiān)牢的瞬間追逮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工粹舵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钮孵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓眼滤,卻偏偏與公主長得像巴席,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子诅需,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評論 2 349

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