selenium 模型简单理解

发表于:2018-9-21 10:22

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:张大人    来源:博客园

  一、流水账:
  不知道设计模式时,写自动化测试用例,是采用“业务操作-断言-业务操作2-断言2...”这种流程编写代码的
  完全按照手工测试的流程,执行操作,判断预期结果的方式写的代码,看起来就像是流水账
  #!/usr/bin/env python
  # _*_ coding:utf-8 _*_
  from selenium import webdriver
  from selenium.webdriver.remote import webelement
  import unittest,time,HTMLTestRunner_cn
  firefox_profile = r'C:\Users\86168\AppData\Roaming\Mozilla\Firefox\Profiles\i7nn3wax.default'
  pf = webdriver.FirefoxProfile(firefox_profile)
  driver = webdriver.Firefox(pf)
  driver.get(u'http://www.baidu.com')
  bdhome = driver.title
  if bdhome == u'百度一下,你就知道':
  print 'PASS'
  else:
  print 'FAIL'
  inputer = driver.find_element_by_id(u'kw')
  inputer.clear()
  inputer.send_keys(u'python学习')
  time.sleep(3)
  bdsug = driver.title
  if bdhome == u'python学习_百度搜索':
  print 'PASS'
  else:
  print 'FAIL'
  driver.quit()

  二、稍作修改,将业务操作和预期结果的判断(断言)分离,加入unittest框架,加入HTMLTestRunner,就有一点PO的雏形了
  #!/usr/bin/env python
  # _*_ coding:utf-8 _*_
  from selenium import webdriver
  import unittest,time,HTMLTestRunner_cn
  firefox_profile = r'C:\Users\86168\AppData\Roaming\Mozilla\Firefox\Profiles\i7nn3wax.default'
  pf = webdriver.FirefoxProfile(firefox_profile)
  driver = webdriver.Firefox(pf)
  driver.get(u'http://www.baidu.com')
  bdhome = driver.title
  inputer = driver.find_element_by_id(u'kw')
  inputer.clear()
  inputer.send_keys(u'python学习')
  time.sleep(3)
  bdsug = driver.title
  driver.quit()
  class MyTestCase(unittest.TestCase):
  def test_1(self):
  '''
  搜索关键字:python
  :return: None
  '''
  self.assertEqual(bdsug,u'python学习路线_百度搜索')
  def test_2(self):
  '''
  打开百度
  :return: None
  '''
  self.assertEqual(bdhome,u'百度一下,你就知道')
  if __name__ == '__main__':
  suite = unittest.TestSuite()
  suite.addTest(MyTestCase('test_1'))
  suite.addTest(MyTestCase('test_2'))
  with open('line.html','a') as f:
  runner = HTMLTestRunner_cn.HTMLTestRunner(stream=f,verbosity=2,title='线性模型')
  runner.run(suite)

  三、分离业务代码和测试代码,封装业务代码,改造测试代码,这就是一个完整的PO设计模式的测试脚本了
  业务代码:
  # coding=utf-8
  # !/usr/bin/env python
  # 业务代码
  from selenium import webdriver
  import time
  firefox_profile = r'C:\Users\86168\AppData\Roaming\Mozilla\Firefox\Profiles\i7nn3wax.default'
  pf = webdriver.FirefoxProfile(firefox_profile)
  driver = webdriver.Firefox(pf)
  def home_page():
  driver.get(u'http://www.baidu.com')
  bdhome = driver.title
  inputer = driver.find_element_by_id(u'kw')
  inputer.clear()
  inputer.send_keys(u'python学习')
  time.sleep(3)
  bdsug = driver.title
  driver.quit()
  return bdhome, bdsug
  上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号