selenium+python(模块化驱动测试)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium+python(模块化驱动测试)相关的知识,希望对你有一定的参考价值。
模块化驱动测试,就是借鉴编程语言中模块化的思想,把重复的操作独立成功公告模块,懂用例执行过程中需要用到这一模块操作时则被调用,这样可以极大的消除重复从而提高测试用例的可维护性
下面具体以126邮箱为例:
首先对每次要都用到的登录登出独立出来,放在公共模块中
public.py
# coding=utf-8 class Login(): # login 登录 def login(self,driver): driver.find_element_by_id("IdInput").clear() driver.find_element_by_id("IdInput").send_keys("username") driver.find_element_by_id("pwdInput").clear() driver.find_element_by_id("pwdInput").send_keys("123456") driver.find_element_by_id("loginBtn").click() # 点击确认登录按钮 # logout 登出 def logout(self,driver): time.sleep(2) driver.find_element_by_link_text(u"退出").click()
把函数独立到单独的脚本中,主要是为函数增加浏览器驱动的参数,因为函数的实现操作需要通过浏览器驱动driver,driver需要通过具体调用的用例给定。
test_case.py,test_case.py通过调用登录、退出函数实现模块化
#coding=utf-8 from selenium import webdriver from public import login import unittest class LoginTest(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() self.base_url = "http://www.126.com" self.driver.implicitly_wait(5) def test_write_letter_case(self): driver = self.driver driver.get(self.base_url) #调用登录函数 login().login(driver) #实现收信、操作 #....... #调用退出函数 login().logout(driver) def tearDown(self): self.driver.quit() if __name__ == "__main__": unittest.main()
首先,需要导入当前目录下的public.py文件中的Login(),在需要的位置调用类中的login()和loginout()函数,这样对于每个用例的编写和维护就会方便很多
以上是关于selenium+python(模块化驱动测试)的主要内容,如果未能解决你的问题,请参考以下文章