亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

精心整理總結(jié)的Python自動(dòng)化測(cè)試面試題

 更新時(shí)間:2023年02月17日 11:43:56   作者:軟件測(cè)試?yán)夏? 
簡(jiǎn)單來說,自動(dòng)化測(cè)試框架包含了所有的測(cè)試工作所需的測(cè)試框架,下面這篇文章主要給大家介紹了關(guān)于Python自動(dòng)化測(cè)試面試題的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

1、自動(dòng)化代碼中,用到了哪些設(shè)計(jì)模式?

  • 單例設(shè)計(jì)模式
  • 工廠模式
  • PO設(shè)計(jì)模式
  • 數(shù)據(jù)驅(qū)動(dòng)模式
  • 面向接口編程設(shè)計(jì)模式

2、什么是斷言( Assert) ?

  • 斷言Assert用于在代碼中驗(yàn)證實(shí)際結(jié)果是不是符合預(yù)期結(jié)果,
  • 如果測(cè)試用例執(zhí)行失敗會(huì)拋出異常并提供斷言日志

3、什么是web自動(dòng)化測(cè)試

  • Web自動(dòng)化測(cè)試是從UI (用戶界面)層面進(jìn)行的自動(dòng)化測(cè)試,
  • 測(cè)試人員通過編程自動(dòng)化程序(測(cè)試用例腳本)來打開瀏覽器測(cè)試網(wǎng)站的業(yè)務(wù)邏輯。

4、什么是Selenium?

Selenium是一個(gè)開源的web自動(dòng)化測(cè)試框架,支持多種編程語言開發(fā)自動(dòng)化測(cè)試腳本,支持跨瀏覽器平臺(tái)進(jìn)行測(cè)試

5、寫出Selenium中你最熟悉的接口或類

WebDriver、InternetExplorerDriver、 FirefoxDriver、 ChromeDriver、 WebElement、WebDriverWait、 By

6、元素定位類型有哪些?

By類一共有8種元素定位方式,它們都是靜態(tài)方法:

  • By.id():
  • By.name():
  • By.tagName():
  • By.className():
  • By.cssSelector():
  • By linkText():
  • By partialLinkText():
  • By.xpath():

7、Xpath是什么?

  • 它是查找web頁(yè)面元素的一種方式,相當(dāng)于元素在dom中間的一個(gè)路徑,可以采用絕對(duì)路徑和相對(duì)路徑的方式進(jìn)行定位
  • 它對(duì)于定義動(dòng)態(tài)的頁(yè)面元素有很大的幫助,同時(shí)也需要謹(jǐn)慎使用,因?yàn)槿绻?yè)面結(jié)構(gòu)發(fā)生變化,那么定位信息也可能需要變化。

8、findElement()和findElements(方法有什么區(qū)別

  • 兩個(gè)都是查找頁(yè)面元素的方法
  • findElement():查找一個(gè)頁(yè)面元素,只會(huì)返回一個(gè)WebElement對(duì)象
  • findElements() :查找頁(yè)面上所有符合匹配的元素,返回元素集合

9、登錄按鈕除了用click方法進(jìn)行點(diǎn)擊以外還有其他方式嗎?

  • 還可以使用submit()方法,前提是input元素的type為submit

10、怎么提高Selenium腳本的執(zhí)行速度

  • 優(yōu)化等待時(shí)間:使用 WebDriverWait 智能等待來代替線程等待 sleep 和 隱式等待 implicityWait
  • 減少不必要的操作:如直接進(jìn)入某頁(yè)面代替經(jīng)過一系列自動(dòng)化操作進(jìn)入某頁(yè)面在服務(wù)器允許的情況下,使用多線程實(shí)現(xiàn)并發(fā)執(zhí)行測(cè)試用例.

11、怎么對(duì)含有驗(yàn)證碼的功能進(jìn)行自動(dòng)化測(cè)試的

  • 1) :圖像識(shí)別,技術(shù)難度大,效果不佳,不推薦
  • 2) :屏蔽驗(yàn)證碼,邀請(qǐng)開發(fā)處理,但在預(yù)生產(chǎn)環(huán)境或者生產(chǎn)環(huán)境不推薦
  • 3) :萬能驗(yàn)證碼,使用一個(gè)復(fù)雜的其他人無法猜到的驗(yàn)證碼

12、怎么驗(yàn)證復(fù)選按鈕是不是被選中

可以使用元素的 isSelected() 方法,如果返回的是 true 則說明被選中,否則表明未被選中

13、如何處理alert彈窗?

  • 處理 alert 彈窗首先需要先跳轉(zhuǎn)到 alert 上,然后在點(diǎn)擊確定或者取消按鈕,
  • Alert alert = driver.switchTo().alert(); //切換到alert
  • alert.accept0; //確定
  • alert.dismiss0; //取消

14、下拉菜單中如何去選擇一個(gè)菜單項(xiàng)?

  • 如果下拉菜單是select標(biāo)簽,使用方法: selectByValue() 或者 selectByIndex() 或者 selectByVisibleText() 即可
  • 如果這個(gè)下拉菜單不是通過 select 標(biāo)簽創(chuàng)建,則直接通過 xpath 定位元素然后去點(diǎn)擊選擇

15、如何模擬瀏覽器的前進(jìn)和后退、刷新操作

  • driver.navigate().back()://后退
  • driver. navigate().forward()://前進(jìn)
  • driver.navigate0.efresh()://刷新

16、怎么獲得當(dāng)前頁(yè)面的URL?

String url = driver.getCurrentUrl();

17、WebDriver的close()和quit(方法的區(qū)別是什么?

  • close()方法只是關(guān)閉當(dāng)前正在操作的窗口
  • quit()是關(guān)閉了所有已經(jīng)打開的窗口

18、你覺得自動(dòng)化測(cè)試用哪些缺陷

  • 成本比較大,而成效可能并不高
  • 適合自動(dòng)化測(cè)試的功能有限
  • 某些功能操作相對(duì)復(fù)雜,比如驗(yàn)證碼
  • 維護(hù)成本高,一旦項(xiàng)目需求變更,自動(dòng)化測(cè)試腳本和用例就需要改進(jìn)

19、Web端功能自動(dòng)化,如何實(shí)現(xiàn)(非input型上傳)上傳文件

  • 與windows窗口進(jìn)行交互,可以使用 pywin32庫(kù) 實(shí)現(xiàn)。

20、遇到 d1 class="inf-bar clearfix" 這種class中間有空格的控件,如何通過class定位?

  • xpath定位:直接//d1 [@class="inf_bar clearfx"]
  • css定位: d1.inf_bar.clearfix

21、Selenium自動(dòng)化,遇到 iframe 如何處理?

使用switch_ to.frame 切換進(jìn) iframe 當(dāng)中后 ,再去定位其中的元素并操作

22、Web端功能自動(dòng)化中,如何切換句柄。

先獲取所有窗口句柄,然后使用 switch_ to.window() 切換到指定窗口

23、測(cè)試中遇到 readonly 屬性的控件,需要如何處理?

簡(jiǎn)述一下思路 先修改關(guān)閉r eadonly 屬性,然后再操作元素。

需求:給定一個(gè)只包含正整數(shù)且非空的數(shù)組,返回該數(shù)組中重復(fù)次數(shù)最多的前N個(gè)數(shù)字(返回結(jié)果按重復(fù)次數(shù)從多到少降序), 請(qǐng)用熟悉的語言實(shí)現(xiàn)該需求。10分鐘內(nèi)寫出來

a = [1, 6, 7, 4, 4, 5, 4, 5, 4, 5, 5, 6, 7, 8, 5, 6, 7, 3, 4, 2, 2, 1, 4, 8, 9, 4, 5, 6]

def get_datas(a):
    result = []
    data_dict = {}
    # 鍵值對(duì):鍵:數(shù)字,值:在列表中的次數(shù)
    for item in set(a):
        data_dict[str(item)] = a.count(item)
    print(data_dict)
    # 將鍵值對(duì)按值(數(shù)字出現(xiàn)的次數(shù))排序 ---從高到低排序
    res = sorted(data_dict.values(),reverse=True)
    for num in res:
        for key,value in data_dict.items():
            # 如果值在列表中不存在,則添加到結(jié)果列表中
            if num == value and key not in result:
                result.append(key)

    return result


a1 = get_datas(a

執(zhí)行結(jié)果:

24、例如: passwd={"admin'":"123321","user1":" 123456"} 滿足一下條件?

1、設(shè)計(jì)一個(gè)登陸程序,不同的用戶名和對(duì)應(yīng)密碼存在一一個(gè)字典里面,輸入正確的用戶和密碼去登陸,

2、首先輸入用戶名,如果用戶名不存在或者為空,則一直提示輸入正確的用戶名

3、 當(dāng)用戶名正確的時(shí)候,提示去輸入密碼,如果密碼跟用戶名不對(duì)應(yīng),則提示密碼錯(cuò)誤請(qǐng)重新輸入。

4、如果密碼輸入錯(cuò)誤超過三次,中斷程序運(yùn)行。

5、當(dāng)輸入密碼錯(cuò)誤時(shí),提示還有幾次機(jī)會(huì)

6、用戶名和密碼都輸入成功的時(shí)候, 提示登陸成功!

users = {"admin": "123456", "user1": " 123456"}
count = 0

def login():
    global count
    username = input("請(qǐng)輸入用戶名:")
    if username == None or username == "":
        login()
    if username not in users.keys():
        print("用戶名輸入不正確,請(qǐng)重新輸入用戶名:")
        login()

    while (count < 3):
        passwd = input("請(qǐng)輸入密碼:")
        if passwd == users[username]:
            print("登錄成功??!")
            count = 3
        else:
            count += 1
            print("密碼輸入錯(cuò)誤,您還有{0}次機(jī)會(huì)。".format(3 - count))

login()

總結(jié)

到此這篇關(guān)于Python自動(dòng)化測(cè)試面試題的文章就介紹到這了,更多相關(guān)Python自動(dòng)化測(cè)試面試題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論