国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

讓自動(dòng)化測(cè)試秒殺繁瑣操作?試試PO模式設(shè)計(jì)框架

這篇具有很好參考價(jià)值的文章主要介紹了讓自動(dòng)化測(cè)試秒殺繁瑣操作?試試PO模式設(shè)計(jì)框架。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄:導(dǎo)讀

引言

po模式

優(yōu)勢(shì):

?目錄解釋:

頁面對(duì)象設(shè)計(jì)模式:

base基礎(chǔ)層:

page對(duì)象層:

?test:測(cè)試層

data數(shù)據(jù)層:

?common層:

?untils:

?config層:

run層:

report:

結(jié)語


引言

你是否曾經(jīng)因?yàn)槊看胃鹿δ芏家匦聦懸欢炎詣?dòng)化測(cè)試代碼而感到疲憊不堪?

或者因?yàn)轫撁嬖氐念l繁變動(dòng)而不得不持續(xù)地修復(fù)測(cè)試腳本?

如果你也有這些苦惱,那么PO模式設(shè)計(jì)框架可能是解決之道。它可以讓你以更簡(jiǎn)單、更高效的方式編寫自動(dòng)化測(cè)試代碼,減少反復(fù)勞動(dòng)和錯(cuò)誤率。

在本文中,我們將介紹如何采用PO模式設(shè)計(jì)框架來秒殺繁瑣的自動(dòng)化測(cè)試操作,讓你輕松應(yīng)對(duì)變化萬千的測(cè)試環(huán)境。

po模式

在UI級(jí)的自動(dòng)化測(cè)試中,對(duì)象設(shè)計(jì)模式表示測(cè)試正在交互的web應(yīng)用,程序用戶界面中的一個(gè)區(qū)域,這個(gè)是減少了代碼的重復(fù),也就是說,如果用戶界面發(fā)生了改變,只需要在一個(gè)地方修改程序就可以了。

優(yōu)勢(shì):

1、創(chuàng)建可以跨越多個(gè)測(cè)試用例共享的代碼

2、減少重復(fù)代碼的數(shù)量

3、如果用戶界面發(fā)生變更后,只需要在一個(gè)地方維護(hù)就可以了。

創(chuàng)建ui,在ui的工程中創(chuàng)建對(duì)應(yīng)的包和目錄。utils? ?最后一個(gè)包的名稱

讓自動(dòng)化測(cè)試秒殺繁瑣操作?試試PO模式設(shè)計(jì)框架

?目錄解釋:

各個(gè)目錄詳解:

(1)base:基礎(chǔ)層,主要編寫底層定位元素的類,它是一個(gè)包。

(2)common:公共類,里面編寫公共使用到的方法。

(3)config:配置文件存儲(chǔ)目錄。

(4)data:存儲(chǔ)測(cè)試使用到測(cè)試數(shù)據(jù)。

(5)page:對(duì)象層,編寫具體的業(yè)務(wù)邏輯,把頁面每一個(gè)操作行為單獨(dú)的寫一個(gè)方法或者是函數(shù)。

(6)report:測(cè)試報(bào)告目錄,主要用來存放測(cè)試報(bào)告。

(7)test:測(cè)試層,里面主要是測(cè)試模塊,也可以說是每個(gè)測(cè)試的場(chǎng)景的代碼。

(8)utils:工具類,存放工具,如文件處理、說明文檔等。

(9)run:運(yùn)行層:整個(gè)自動(dòng)化測(cè)試的運(yùn)行目錄。

頁面對(duì)象設(shè)計(jì)模式:

base基礎(chǔ)層:

在該層中主要編寫了基礎(chǔ)代碼。在該層主要定義了類WebUI,在這個(gè)類中編寫了單個(gè)元素和多個(gè)元素定位的方法。

#! /usr/bin/env python
# -*- coding:utf-8 -*-
# author:張紅

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.expected_conditions import NoSuchElementException
import time as t

class WebUI(object):
    def __init__(self,driver):
        #webdriver實(shí)例化后的對(duì)象
        self.driver=driver

    def findElement(self,*args):
        '''
        單個(gè)元素定位的方式
        :param args:
        :return: 它是一個(gè)元組,需要帶上具體什么方式定位元素屬性以及元素屬性的值
        '''
        try:
            return self.driver.find_element(*args)
        except NoSuchElementException as e:
            return e.args[0]

    def findsElement(self,*args,index):
        '''
        多個(gè)元素定位的方式
        :param args:
        :param index: 被定位的目標(biāo)索引值
        :return: 它是一個(gè)元組,需要帶上具體什么方式定位元素屬性以及元素屬性的值
        '''
        try:
            return self.driver.find_elements(*args)[index]
        except NoSuchElementException as e:
            return e.args[0]

page對(duì)象層:

在這一層的類直接繼承了基礎(chǔ)層的類,以類屬性的方法指明每個(gè)操作元素屬性的值,然后依據(jù)操作步驟編寫對(duì)應(yīng)的方法,(比如關(guān)于登錄的操作:輸入用戶名、輸入密碼,點(diǎn)擊登錄,獲取文本的信息操作會(huì)在實(shí)例中實(shí)現(xiàn)的登錄操作,然后把每個(gè)登錄操作封裝成一個(gè)方法,這樣實(shí)現(xiàn)登錄測(cè)試用例直接調(diào)用,返回失敗信息---其中形式參數(shù)會(huì)在測(cè)試層賦值)

注意:獲取文件信息的方法,要有return返回值否則在測(cè)試層斷言時(shí)獲取不到文本信息,數(shù)據(jù)屬性和方法名字不要一樣

讓自動(dòng)化測(cè)試秒殺繁瑣操作?試試PO模式設(shè)計(jì)框架

?test:測(cè)試層

在這里首先需要導(dǎo)入對(duì)象層中的類和unittest單元測(cè)試框架,在測(cè)試類中,繼承了unittest.TestCase和對(duì)象層中的類,TestCase是由于在編寫自動(dòng)化測(cè)試的用例中,用到的測(cè)試固件、測(cè)試斷言和測(cè)試執(zhí)行都是需要它中的方法,而對(duì)象層中的類包含對(duì)象層中的測(cè)試操作步驟的方法,繼承后可以直接進(jìn)行調(diào)用。

注意事項(xiàng):

1、在編寫用例的時(shí)候需要添加備注信息,明確表示該用例是測(cè)試的哪個(gè)點(diǎn),驗(yàn)證的哪個(gè)場(chǎng)景.

2、測(cè)試模塊都是以test_開頭,測(cè)試方法也是以test_開頭的

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

#! /usr/bin/env python

# -*- coding:utf-8 -*-

# author:張紅

from?page.sina?import?*

import??unittest

from?selenium?import??webdriver

import?time as t

from?page.init?import?*

class?SinaTest(Init,Sina):

????def?test_username_null(self):

????????self.login(username='',password='12345')

????????t.sleep(3)

????????# 驗(yàn)證郵箱名為空

????????self.assertEqual(self.getUserError(),'請(qǐng)輸入郵箱名')

????????t.sleep(3)

????def?test_username_supportChinese(self):

????????self.login(username='中國',password='12345')

????????t.sleep(3)

????????# 驗(yàn)證郵箱名不支持中文

????????self.assertEqual(self.getUserError(),'郵箱名不支持中文')

????????t.sleep(3)

????def?test_username_formatError(self):

????????self.login(username='123',password='12345')

????????t.sleep(3)

????????# 驗(yàn)證郵箱名格式不正確

????????self.assertEqual(self.getUserError(),'您輸入的郵箱名格式不正確')

????def?test_password_null(self):

????????self.login(username='15102903662@sina.com',password='')

????????t.sleep(3)

????????# 驗(yàn)證密碼為空

????????self.assertEqual(self.getPassError(),'請(qǐng)輸入密碼')

????????t.sleep(3)

????def?test_login_error(self):

????????self.login(username='15102903662@sina.com',password='724225')

????????t.sleep(3)

????????# 驗(yàn)證用戶名錯(cuò)誤

????????self.assertEqual(self.getUserError(),'登錄名或密碼錯(cuò)誤')

????????t.sleep(3)

data數(shù)據(jù)層:

春初測(cè)試使用到的測(cè)試數(shù)據(jù)(主要是把數(shù)據(jù)寫入json文件,yaml文件)

在data下創(chuàng)建json文件

讓自動(dòng)化測(cè)試秒殺繁瑣操作?試試PO模式設(shè)計(jì)框架

?common層:

common:公共層,里面編寫公共使用到的文件(處理路徑---重點(diǎn)處理的是json文件或者yaml文件)一般時(shí)定義基礎(chǔ)路徑的

1、在這個(gè)層創(chuàng)建public.py? 文件

導(dǎo)入os庫,定義基礎(chǔ)路徑(也就是把基礎(chǔ)路徑處理為將要讀取文件所在文件夾的路徑,這樣方便使用的時(shí)候做路徑拼接)

讓自動(dòng)化測(cè)試秒殺繁瑣操作?試試PO模式設(shè)計(jì)框架

?untils:

工具層:基本上是對(duì)data里面的(json yaml文件的讀?。?/p>

在untils下創(chuàng)建模塊:operationJson.py,設(shè)置方法readJson()來讀取數(shù)據(jù)

在這個(gè)模塊我們需要導(dǎo)入os來進(jìn)行路徑拼接,Json反序列化用來讀取文件,還有就是導(dǎo)入公共層下的基礎(chǔ)路徑

讓自動(dòng)化測(cè)試秒殺繁瑣操作?試試PO模式設(shè)計(jì)框架

讓自動(dòng)化測(cè)試秒殺繁瑣操作?試試PO模式設(shè)計(jì)框架

讓自動(dòng)化測(cè)試秒殺繁瑣操作?試試PO模式設(shè)計(jì)框架

?config層:

配置文件存儲(chǔ)目錄

run層:

運(yùn)行層,主要是運(yùn)行測(cè)試用例的目錄,我們可以根據(jù)測(cè)試模塊來運(yùn)行,也可以運(yùn)行所有的模塊,該層的內(nèi)容也適用于所有場(chǎng)景(適用的前提是po設(shè)計(jì)模式的目錄結(jié)構(gòu)如上所示)

測(cè)試報(bào)告:

 1 import time
 2 # 時(shí)間
 3 import unittest
 4 # 加載測(cè)試模塊
 5 import os
 6 # 處理路徑
 7 import HTMLTestRunner
 8 # 生成測(cè)試報(bào)告必須要用的庫
 9 def getSuite():
10     # start_dir=加載所有的測(cè)試模塊來執(zhí)行,pattern=通過正則的模式加載所有的模塊
11     '''獲取所有執(zhí)行的測(cè)試模塊'''
12     suite = unittest.TestLoader().discover(
13         start_dir=os.path.dirname(__file__),
14         pattern='test_*.py'
15     )
16     return suite
17 
18 # 獲取當(dāng)前時(shí)間
19 def getNowtime():
20     return time.strftime("%y-%m-%d %H_%M_%S",time.localtime(time.time()))
21 
22 # 執(zhí)行獲取的測(cè)試模塊,并獲取測(cè)試報(bào)告
23 def main():
24     filename=os.path.join(os.path.dirname(__file__),'report',getNowtime()+"report.html")
25     # 把測(cè)試報(bào)告寫入文件中,b是以二進(jìn)制的方式寫入
26     fp=open(filename,"wb")
27     # HTMLTestRunner實(shí)例化的過程,stream是流式寫入,title是測(cè)試報(bào)告的標(biāo)題,description是對(duì)測(cè)試報(bào)告的描述
28     runner=HTMLTestRunner.HTMLTestRunner(
29         stream=fp,
30         title="UI自動(dòng)化測(cè)試報(bào)告",
31         description="UI自動(dòng)化測(cè)試報(bào)告"
32     )
33     runner.run(getSuite())
34 if __name__=="__main__":
35     main()

report:

主要用于存放測(cè)試報(bào)告

結(jié)語

這篇貼子到這里就結(jié)束了,最后,希望看這篇帖子的朋友能夠有所收獲。

?PO模式教程獲取方式:留言【po模式學(xué)習(xí)】即可

如果你覺得文章還不錯(cuò),請(qǐng)大家 點(diǎn)贊、分享、留言 下,因?yàn)檫@將是我持續(xù)輸出更多優(yōu)質(zhì)文章的最強(qiáng)動(dòng)力!文章來源地址http://www.zghlxwxcb.cn/news/detail-433402.html

到了這里,關(guān)于讓自動(dòng)化測(cè)試秒殺繁瑣操作?試試PO模式設(shè)計(jì)框架的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【W(wǎng)EB自動(dòng)化測(cè)試】-PO設(shè)計(jì)模式

    如用例多了,那么登陸的代碼就需要在每個(gè)模塊化中都加入,所以考慮公共部分提取出來,做成一個(gè)公共的工具類。習(xí)慣命名為utils.py。 定義獲取驅(qū)動(dòng)對(duì)象的工具類 封裝\\\"獲取彈出框的提示信息\\\" PO是Page Object的縮寫,PO模式是自動(dòng)化測(cè)試項(xiàng)目開發(fā)實(shí)踐的最佳設(shè)計(jì)模式之一。核心

    2024年02月16日
    瀏覽(98)
  • Web 自動(dòng)化測(cè)試(Selenium) PO 模型

    Web 自動(dòng)化測(cè)試(Selenium) PO 模型

    ??? 交流討論: 歡迎加入我們一起學(xué)習(xí)! ?? 資源分享 : 耗時(shí)200+小時(shí)精選的「軟件測(cè)試」資料包 ??? 教程推薦: 火遍全網(wǎng)的《軟件測(cè)試》教程?? ?? 歡迎點(diǎn)贊 ?? 收藏 ?留言 ?? 如有錯(cuò)誤敬請(qǐng)指正! 1. po 模型介紹 在自動(dòng)化中,Selenium 自動(dòng)化測(cè)試中有一個(gè)名字經(jīng)常被提

    2024年04月13日
    瀏覽(18)
  • UI 自動(dòng)化測(cè)試框架:PO 模式+數(shù)據(jù)驅(qū)動(dòng)

    UI 自動(dòng)化測(cè)試框架:PO 模式+數(shù)據(jù)驅(qū)動(dòng)

    PO(PageObject)設(shè)計(jì)模式將某個(gè)頁面的所有元素對(duì)象定位和對(duì)元素對(duì)象的操作封裝成一個(gè) Page 類,并以頁面為單位來寫測(cè)試用例,實(shí)現(xiàn)頁面對(duì)象和測(cè)試用例的分離。 PO 模式的設(shè)計(jì)思想與面向?qū)ο笙嗨?,能讓測(cè)試代碼變得可讀性更好,可維護(hù)性高,復(fù)用性高。 PO 模式可以把一個(gè)

    2024年02月06日
    瀏覽(95)
  • UI 自動(dòng)化測(cè)試框架:PO模式+數(shù)據(jù)驅(qū)動(dòng)

    UI 自動(dòng)化測(cè)試框架:PO模式+數(shù)據(jù)驅(qū)動(dòng)

    1. PO 設(shè)計(jì)模式簡(jiǎn)介 什么是 PO 模式? PO(PageObject)設(shè)計(jì)模式將某個(gè)頁面的所有元素對(duì)象定位和對(duì)元素對(duì)象的操作封裝成一個(gè) Page 類,并以頁面為單位來寫測(cè)試用例,實(shí)現(xiàn)頁面對(duì)象和測(cè)試用例的分離。 PO 模式的設(shè)計(jì)思想與面向?qū)ο笙嗨?,能讓測(cè)試代碼變得可讀性更好,可維護(hù)性

    2024年02月04日
    瀏覽(90)
  • Selenium自動(dòng)化測(cè)試設(shè)計(jì)模式-PO模式

    Selenium自動(dòng)化測(cè)試設(shè)計(jì)模式-PO模式

    在python自動(dòng)化過程中,Selenium自動(dòng)化測(cè)試中有一個(gè)名字常常被提及PageObject(思想與面向?qū)ο蟮奶匦韵嗤?,通過PO模式可以大大提高測(cè)試用例的維護(hù)效率。 不了解po設(shè)計(jì)模式的可自行百度 面向?qū)ο蟮奶匦?:封裝、繼承、多態(tài) 傳統(tǒng)測(cè)試腳本的弊端: 測(cè)試腳本分離,維護(hù)成本高

    2023年04月08日
    瀏覽(88)
  • UI 自動(dòng)化測(cè)試框架:PO 模式+數(shù)據(jù)驅(qū)動(dòng)!

    UI 自動(dòng)化測(cè)試框架:PO 模式+數(shù)據(jù)驅(qū)動(dòng)!

    PO(PageObject)設(shè)計(jì)模式將某個(gè)頁面的所有元素對(duì)象定位和對(duì)元素對(duì)象的操作封裝成一個(gè) Page 類,并以頁面為單位來寫測(cè)試用例,實(shí)現(xiàn)頁面對(duì)象和測(cè)試用例的分離。 PO 模式的設(shè)計(jì)思想與面向?qū)ο笙嗨?,能讓測(cè)試代碼變得可讀性更好,可維護(hù)性高,復(fù)用性高。 PO 模式可以把一個(gè)

    2024年02月03日
    瀏覽(2297)
  • po+selenium+unittest自動(dòng)化測(cè)試項(xiàng)目實(shí)戰(zhàn)

    po+selenium+unittest自動(dòng)化測(cè)試項(xiàng)目實(shí)戰(zhàn)

    1、新建一個(gè)包名:common(用于存放基本函數(shù)封裝) (1)在common包下新建一個(gè)base.py文件,作用:頁面操作封裝。base.py文件代碼如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

    2024年01月17日
    瀏覽(24)
  • selenium UI自動(dòng)化PO模式測(cè)試框架搭建

    selenium UI自動(dòng)化PO模式測(cè)試框架搭建

    熟悉業(yè)務(wù)-》確定方案-》選取場(chǎng)景-》了解前端-》定位元素-》編寫腳本-》運(yùn)行優(yōu)化-》回歸報(bào)告-》項(xiàng)目匯總 價(jià)值意義: 自動(dòng)化執(zhí)行需要:模塊化 需要可制定化執(zhí)行 可復(fù)用性 PO模式: 將頁面定位和業(yè)務(wù)分開,元素的定位單獨(dú)處理,執(zhí)行腳本單獨(dú)封裝。維護(hù)方便。 封裝BasePag

    2024年02月04日
    瀏覽(89)
  • 深度解析appium自動(dòng)化測(cè)試,掌握移動(dòng)端測(cè)試的最新技術(shù),從此告別繁瑣手工測(cè)試

    目錄 一、什么是appium? 二、appium的使用場(chǎng)景 三、appium的基礎(chǔ)知識(shí) 四、appium代碼示例

    2024年01月19日
    瀏覽(91)
  • Selenium基于Python web自動(dòng)化測(cè)試框架 -- PO

    Selenium基于Python web自動(dòng)化測(cè)試框架 -- PO

    ??? 交流討論: 歡迎加入我們一起學(xué)習(xí)! ?? 資源分享 : 耗時(shí)200+小時(shí)精選的「軟件測(cè)試」資料包 ??? 教程推薦: 火遍全網(wǎng)的《軟件測(cè)試》教程?? ?? 歡迎點(diǎn)贊 ?? 收藏 ?留言 ?? 如有錯(cuò)誤敬請(qǐng)指正! 關(guān)于selenium測(cè)試框架首先想到的就是PO模型,簡(jiǎn)單說下PO模型 PO模型的

    2024年02月22日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包