1. 程式人生 > >20181025軟體測試經驗分享-app的Ui自動化測試 使用long_press() 實現傳送語音

20181025軟體測試經驗分享-app的Ui自動化測試 使用long_press() 實現傳送語音

今天公司那個app的UI自動化測試指令碼就差不多了,再優化就是 增加發送郵件-分散式執行,暫時就沒那麼忙碌了。

長按 long_press() 實現傳送語音

公司app的即時通訊功能我已經放棄治療,所以拿著微信來做個分享,如果想傳送語音,如何用指令碼來實現呢?

這是今天的主角: 在這裡插入圖片描述

下面是程式碼:

    def test_01(self):
    	from appium.webdriver.common.touch_action import TouchAction
        self.driver.implicitly_wait(5)
        self.driver.find_element_by_xpath(self.weixin_xpath).click()
        self.driver.find_element_by_id(self.touxiang_id).click()
        self.driver.find_element_by_id(self.liaotian_biaoqing_id).click()
        self.driver.find_element_by_id(self.liaotian_yuyin_id).click()
        
        TouchAction(self.driver).long_press(self.driver.find_element_by_id(self.liaotian_yuyin_shuohua_id), duration=5000).release().perform()
        time.sleep(1)
        TouchAction(self.driver).long_press(self.driver.find_element_by_id(self.liaotian_yuyin_shuohua_id), duration=5000).wait(3000).release().perform()
        time.sleep(1)
        self.assertTrue(self.driver.find_element_by_id('com.tencent.mm:id/aa3'))

多說幾句: 1.沒有使用顯式等待,偷懶 直接隱式等待了; 2.前面幾行是 進入某個會話,點選了那個揚聲器的小圖示; 3.預期結果是 傳送2條語音,一條持續5秒,一條持續8秒(持續長按5秒+等待3秒) 4.下次再進入次會話官方版本是 直接說話(故不能再點選揚聲器) 解決方法:先點選 表情; 5.斷言部分是驗證的會話是否有這條語音資訊。關於斷言,實際是應該在用例最後 做個清空聊天記錄的處理;因為時間有限,我就手工執行了。

結果: 在這裡插入圖片描述

其實是應該昨天做更新,但我嫌棄微信的最新版本太佔記憶體,換了個谷歌市場版本,所以所有元素定位的屬性值全部更改,再確定沒啥問題後,跑這條用例反而全都失敗。所以今早特地再來排查問題,發現沒問題。

交流技術 歡迎+QQ 153132336 zy