• 前端测试自动化工具(一)


    selenium

    selenium 分为好几个系列

    • Selenium IDE
    • Selenium Server (formerly the Selenium RC Server)
    • Selenium Client & WebDriver Language Bindings

    详细的说明介绍在这里 简单来说, selenium ide 是 firefox 浏览器上的一款插件, 可以记录测试员的一系列操作, 并可以根据要求生成一系列命令和特定的脚本程序

    (看个人喜好).

    selenium rc 是用来运行selenium 脚本程序的..

    webdriver 的说明在这里

    selenium webdriver & python

    开发人员自己要写测试用例, 这是个很好的习惯..本人推荐python系列. windows 下安装过程如下:

    • python
    • setuptools , pip
    • pip install -U selenium
    • selenium-server-standalone-XXX.jar

    本人安装测试的时候折腾了好久, 不想让大家也这样折腾一次. 所以整理了下, 打了个包供大家下载.

    包内容如下: firefox , selenium-ide, chromedriver, iedriver, selenium-server-standalone-XXX.jar, pip, setuptools.

    python的安装, 请去官网上看说明. 另外个安装说明在这里

    selenium+python文档

    用例测试

    以好康网的登陆过程为例一系列流程下来, selenium ide 生成的命令如下:

    然后可以导出为python rc 或者 python webdriver 脚本, 可以手动修改脚本再运下.

    python webdriver的版本如下:
       1:  from selenium import webdriver
       2:  from selenium.webdriver.common.by import By
       3:  from selenium.webdriver.support.ui import WebDriverWait
       4:  from selenium.common.exceptions import NoSuchElementException
       5:  import unittest, time, re
       6:   
       7:  class Login(unittest.TestCase):
       8:      def setUp(self):
       9:          self.driver = webdriver.Firefox()
      10:          self.driver.implicitly_wait(30)
      11:          self.base_url = "http://staging.fever38.com/"
      12:          self.verificationErrors = []
      13:          self.accept_next_alert = True
      14:   
      15:      def test_login(self):
      16:          driver = self.driver
      17:          driver.get(self.base_url + "/")
      18:          driver.find_element_by_css_selector("b.fb-login").click()
      19:   
      20:          driver.switch_to_window(driver.window_handles[-1])
      21:          WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id("email"))
      22:          driver.find_element_by_id("email").clear()
      23:          driver.find_element_by_id("email").send_keys("your email")
      24:          driver.find_element_by_id("pass").clear()
      25:          driver.find_element_by_id("pass").send_keys("your password")
      26:          driver.find_element_by_id("persist_box").click()
      27:   
      28:   
      29:      def is_element_present(self, how, what):
      30:          try: self.driver.find_element(by=how, value=what)
      31:          except NoSuchElementException, e: return False
      32:          return True
      33:   
      34:      def is_alert_present(self):
      35:          try: self.driver.switch_to_alert()
      36:          except NoAlertPresentException, e: return False
      37:          return True
      38:   
      39:      def close_alert_and_get_its_text(self):
      40:          try:
      41:              alert = self.driver.switch_to_alert()
      42:              alert_text = alert.text
      43:              if self.accept_next_alert:
      44:                  alert.accept()
      45:              else:
      46:                  alert.dismiss()
      47:              return alert_text
      48:          finally: self.accept_next_alert = True
      49:   
      50:      def tearDown(self):
      51:          self.driver.quit()
      52:          self.assertEqual([], self.verificationErrors)
      53:   
      54:  if __name__ == "__main__":
      55:      unittest.main()
    python selenium rc 的版本如下:
       1:  from selenium import selenium
       2:  import unittest, time, re
       3:   
       4:  class login2(unittest.TestCase):
       5:      def setUp(self):
       6:          self.verificationErrors = []
       7:          self.selenium = selenium("localhost", 4444, "*chrome", "http://staging.fever38.com/")
       8:          self.selenium.start()
       9:      
      10:      def test_login2(self):
      11:          sel = self.selenium
      12:          sel.open("/")
      13:          sel.click("css=b.fb-login")
      14:          sel.wait_for_pop_up("f3da5628edf910a", "30000")
      15:          sel.select_window("name=_e_0pS1")
      16:          sel.type("id=email", "your email")
      17:          sel.type("id=pass", "your password")
      18:          sel.click("id=persist_box")
      19:          sel.click("id=u_0_1")
      20:          sel.wait_for_page_to_load("30000")
      21:      
      22:      def tearDown(self):
      23:          self.selenium.stop()
      24:          self.assertEqual([], self.verificationErrors)
      25:   
      26:  if __name__ == "__main__":
      27:      unittest.main()

    selenium-server 启动

    @echo on
    cmd.exe /k "%1" java -jar e:selenium-server-standalone-2.33.0.jar
  • 相关阅读:
    JAVA学习日报 11/26
    JAVA学习日报 11/25
    大二寒假作业之JavaWeb
    大二寒假作业之JavaWeb
    大二寒假作业之JavaWeb
    大二寒假作业之《构建之法》读后感2
    大二寒假作业之Android
    大二寒假作业之《构建之法》读后感1
    大二寒假作业之android
    大二寒假作之Android
  • 原文地址:https://www.cnblogs.com/ms_config/p/3205060.html
Copyright © 2020-2023  润新知