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

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

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

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

 

#從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

 

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

若不用appium判斷,能夠利用opencv進行判斷,由於大多數app啓動時都會有splash頁,咱們能夠利用代碼判斷啓動時的splash頁與預期圖片是否一致blog

代碼以下,輸出的值越接近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)
相關文章
相關標籤/搜索