zoukankan      html  css  js  c++  java
  • UI自动化测试:测试异步场景的临时处理

    一、测试场景

      在做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

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

  • 相关阅读:
    操作系统第一天学习
    进制之间的转换
    git的使用
    Python 第二天学习(文件的处理)
    下载博客首页的博客列表
    获取所有的列表
    抓取指定博客的内容
    进程简介
    python 内置函数range和xrange
    关于read的例子和条件测试
  • 原文地址:https://www.cnblogs.com/zdx20/p/15207339.html
Copyright © 2011-2022 走看看