首页 > 其他 > 详细

UI自动化:测试异步场景的临时处理

时间:2021-09-01 23:18:07      阅读:27      评论:0      收藏:0      [点我收藏+]

一、测试场景

  在做UI自动化测试时,经常会遇到测试场景需要等很久才能继续下一步,或者测试状态需要等很久才能有结果,这时需要用到进程、线程等python的高级用法来处理。但此时编程水平有限时,只能暂时采用等待状态变化的办法,再进行下一步自动化测试,等有更好的方法在更新。

  有路过的同仁知道更好的方法,请不吝赐教!

  1、以手机端酒店订单自动取消的场景为例(10分钟倒计时结束后自动取消):

技术分享图片

二、测试过程

  通常的做法是在当前页面等待10分钟,然后刷新页面获取订单状态,这种方法直接粗暴,如下面的方式:

 

def test_autocancel_hotel( driver):
    """酒店订单未支付时,10分钟后自动取消订单"""
    # -------------------测试步骤 -------------------
    # 在订单详情页直接等待10分钟
    time.sleep(605)
    # 刷新页面
    driver.refresh()
    time.sleep(3)
    driver.find_element(By.XPATH, "//div[text()=‘已取消‘]")

 

  这种强制等待10分钟的方式不可行,因为appium在等待超过一定时间,没有接收到操作请求时会关闭测试的App。

  只能改成过一段时间去刷新页面,然后获取订单状态,虽然能解决问题,但感觉不是最好的方法,如下:

def test_autocancel_hotel(driver):
    """酒店订单未支付时,10分钟后自动取消订单"""
    # -------------------测试步骤 -------------------
    # 在订单详情页等待10分钟,订单自动取消
    used_time = 0
    timeout = 25
    while used_time < timeout:
        time.sleep(28)
        # 刷新页面
        driver.refresh()
        time.sleep(3)
        try:
            driver.find_element(By.XPATH, "//div[text()=‘已取消‘]")
            break
        except:
            used_time += 1

  有路过的大佬知道更好的方式,请不吝赐教!

 

UI自动化:测试异步场景的临时处理

原文:https://www.cnblogs.com/zdx20/p/15207339.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!