【appium】APP自動化測試,判斷頁面與預期是否相同


自動化測試中,有時需要驗證頁面跳轉是否正常

1、選擇appium實現,因為要填寫appPcakage和appActivity,只能驗證一個單獨的APP,在自身APP上各個頁面是否跳轉正常

例如:焦點從APP中的【智能音箱】TAB移動到【歷史】TAB后,可以通過try去判斷“歷史”頁面是否存在應有的元素,若拋出異常說明跳轉沒有成功

 

#從A頁面,跳轉到B頁面
driver.find_element_by_xpath(u"//*[@text='歷史']").click()

# 判斷是否成功跳轉到了B頁面
try:
    driver.find_element_by_xpath(u"//*[@text='全部歷史']") 
    print u"成功"
except NoSuchElementException as msg: 
    print u"失敗,查找元素異常%s"%msg

 

2、若需求是驗證從A_APP跳轉到B_APP,因為有多個APP,因為要填寫appPcakage和appActivity,appium就會有一定局限性,如圖所示APP,源均來源於第三方APP,點擊跳轉到第三方APP,appium判斷是否跳轉成功就有一定難度

若不用appium判斷,可以利用opencv進行判斷,因為大多數app啟動時都會有splash頁,我們可以利用代碼判斷啟動時的splash頁與預期圖片是否一致

代碼如下,輸出的值越接近0則兩張圖片相似度越高,若輸出的值為0,則兩張圖一致

import cv2
import numpy as np

class Test:
    
    def getHash(self,image):
        avreage=np.mean(image)
        hash0 = []
        for i in range(image.shape[0]):
            for j in range(image.shape[1]):
                if image[i,j]>avreage:
                    hash0.append(1)
                else:
                    hash0.append(0)

        return hash0

    def Hamming_distance(self,hash1,hash2):
        num = 0
        for index in range(len(hash1)):
            if hash1[index] != hash2[index]:
                num += 1
        return num

    def classify_aHash(self,image1,image2):
        image1 = cv2.resize(image1,(8,8))
        image2 = cv2.resize(image2,(8,8))
        gray1 = cv2.cvtColor(image1,cv2.COLOR_BGR2GRAY)
        gray2 = cv2.cvtColor(image2,cv2.COLOR_BGR2GRAY)
        hash1 = self.getHash(gray1)
        hash2 = self.getHash(gray2)
        return self.Hamming_distance(hash1,hash2)
if __name__ == '__main__':
    w=Test()   
  #導入1.png圖片和2.png圖片 img1
= cv2.imread('1.png') img2 = cv2. imread('2.png') degree = w.classify_aHash(img1,img2)
  #輸出值等於0說明兩張圖片一致,輸出值不為0,則越接近0則越相似
print degree cv2.waitKey(0)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM