首页 > 编程语言 > 详细

python 改进功能测试:确保隔离,去掉含糊等待

时间:2019-10-24 21:33:52      阅读:97      评论:0      收藏:0      [点我收藏+]

1.确保隔离

上一个随笔中功能测试操作的是正确的数据库,所以会保留一些数据影响,所以要隔离测试(而django中的单元测试是自动隔离的)使用django中的

LiveServerTestCase类
1.在项目中 mkdir function_test
2.touch function_test/__init__.py
3.将之前的功能测试移动到function_test下面,重命名tests.py
4.修改一些代码
2.去掉含糊的等待time.sleep
整体改动代码如下
from selenium import webdriver
from  selenium.webdriver.common.keys import Keys
import time
from django.test import LiveServerTestCase
from selenium.common.exceptions import WebDriverException
class Myunittest(LiveServerTestCase):
   def setUp(self):#测试开始前运行
      self.browser=webdriver.Firefox()
   def tearDown(self):#测试开始后运行
      self.browser.quit()
   def test_can_start_a_list_and_retrieve_it_later(self):#测试的主要方法
      self.browser.get(self.live_server_url)
      self.assertIn("To-Do lists",self.browser.title)#断言
      header_text=self.browser.find_element_by_tag_name(‘h1‘).text
      self.assertIn(‘Hello World‘,header_text)
      input=self.browser.find_element_by_id("id_new_item")
      self.assertEqual(
         input.get_attribute(‘placeholder‘),#获取属性里的值
         ‘Enter a to-do item‘
      )
      input.send_keys(‘Buy1‘)#填入文本框
      input.send_keys(Keys.ENTER)#回车
      self.wait_for_row_in_list_table(‘1:Buy1‘)
      input = self.browser.find_element_by_id("id_new_item")
      input.send_keys(‘Buy2‘)  # 填入文本框
      input.send_keys(Keys.ENTER)  # 回车
      self.wait_for_row_in_list_table(‘2:Buy2‘)
   def  wait_for_row_in_list_table(self,row_text):#去掉含糊等待函数
      start_time=time.time()
      max_wait=5
      while True:
         try:#第一个出口测试成功
            table = self.browser.find_element_by_id(‘id_list_table‘)
            rows = table.find_elements_by_tag_name(‘tr‘)
            self.assertIn(row_text, [row.text for row in rows])
            return
         except(AssertionError,WebDriverException) as e:
            if time.time()-start_time>max_wait:#第二个出口测试失败,返回失败原因
               raise e
            time.sleep(0.5)
         #AssertionError找到表格没有找到想要的行
         #WebDriverException页面未加载或者没有找到表格

  

运行 python manage.py test function_test即可运行功能测试
(python manage.py test运行功能测试和单元测试)
(python manage.py test APP名称 运行单元测试)
 

python 改进功能测试:确保隔离,去掉含糊等待

原文:https://www.cnblogs.com/chenminyu/p/11734457.html

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