多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

接口自动化测试-selenium模型的含义

更新时间:2021-10-07 06:10:22 作者:admin 浏览:400

接口自动化测试-selenium模型的含义

  一、流水账

  不知道设计模式时,写自动化测试用例,是采用“业务操作-断言-业务操作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:Users86168AppDataRoamingMozillaFirefoxProfilesi7nn3wax.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()

接口自动化测试-selenium模型的含义

  二、稍作修改,将业务操作和预期结果的判断(断言)分离,加入unittest框架,加入HTMLTestRunner

  #!/usr/bin/env python

  # _*_ coding:utf-8 _*_

  from selenium import webdriver

  import unittest,time,HTMLTestRunner_cn

  firefox_profile = r'C:Users86168AppDataRoamingMozillaFirefoxProfilesi7nn3wax.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:Users86168AppDataRoamingMozillaFirefoxProfilesi7nn3wax.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

  以上是关于selenium模型含义的介绍,由多测师亲自撰写。https://www.aichudan.com/

联系电话

17727591462

返回顶部