码迷,mamicode.com
首页 > 其他好文 > 详细

登录模块化

时间:2017-01-06 22:20:51      阅读:367      评论:0      收藏:0      [点我收藏+]

标签:login   引导   cloud   测试用例   rdo   selenium   use   内容   alert   

通过上一节对测试模型的学习可以发现,在我们的目前的脚本中有很多代码是可以模块化的,比如登录模块。我们的每一个用例的执行都需要登录脚本,那可我们是否可以将登录脚本独立到单独的文件调用。下面以快播私有云的登录退出测试用例为例:

webcloud.py

代码示例:

#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
import unittest, time

 

class Login(unittest.TestCase):
    def setUp(self):
       self.driver = webdriver.Firefox()
       self.driver.implicitly_wait(30)
       self.base_url = "http://passport.kuaibo.com"
       self.verificationErrors = []
       self.accept_next_alert = True

#私有云登录用例
    def test_login(self):

      driver = self.driver
      driver.get(self.base_url +"/login/?referrer=http%3A%2F%2Fwebcloud.kuaibo.com%2F")
      driver.maximize_window()

      #登陆
      driver.find_element_by_id("user_name").clear()
      driver.find_element_by_id("user_name").send_keys("username")
      driver.find_element_by_id("user_pwd").clear()
      driver.find_element_by_id("user_pwd").send_keys("123456")
      driver.find_element_by_id("dl_an_submit").click()
      time.sleep(3)

     #新功能引导
      driver.find_element_by_class_name("guide-ok-btn").click()
      time.sleep(3)

 

    #退出
    driver.find_element_by_class_name("Usertool").click()
    time.sleep(2)
    driver.find_element_by_link_text("退出").click()
    time.sleep(2)

 

    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)

注明:本用例暂不关注unittest 内容,第六章会详细的讲解unittest 单元测试框架。

从业务流程及用例分析,每一个自动化测试用例的执行过程为:先执行登录操作,然后执行具体的操作(如文件/文件夹的创建、删除、移动、重命名等操作),最后执行退出操作。如上面的测试用例,登录与退出操作是相对固定的,那么我们可以把登录与退出操作进行模块化,然后调用,一方面不用写重复代
码,另一方面可以使测试用例更关注具体的用例代码。

在与webcloud.py 相同的目录下创建login.py 文件,脚本内容如下:

代码示例:

#coding=utf-8
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import unittest, time

 

#登陆模块(函数)
def login(self):
    driver = self.driver
    driver.maximize_window()
    driver.find_element_by_id("user_name").clear()
    driver.find_element_by_id("user_name").send_keys("username")
    driver.find_element_by_id("user_pwd").clear()
    driver.find_element_by_id("user_pwd").send_keys("123456")
    driver.find_element_by_id("dl_an_submit").click()
    time.sleep(3)

 

webcloud.py

代码示例:

#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
import unittest, time
import login #导入登录文件

 

class Login(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.base_url = "http://passport.kuaibo.com"
        self.verificationErrors = []
        self.accept_next_alert = True

 

#私有云登录用例

def test_login(self):
     driver = self.driver
     driver.get(self.base_url +"/login/?referrer=http%3A%2F%2Fwebcloud.kuaibo.com%2F")

 

   #调用登录模块
   login.login(self)

 

#新功能引导
driver.find_element_by_class_name("guide-ok-btn").click()
time.sleep(3)


#退出
driver.find_element_by_class_name("Usertool").click()
time.sleep(2)
driver.find_element_by_link_text("退出").click()
time.sleep(2)


def tearDown(self):
     self.driver.quit()
     self.assertEqual([], self.verificationErrors)


if __name__ == "__main__":
unittest.main()

 

登录模块化

标签:login   引导   cloud   测试用例   rdo   selenium   use   内容   alert   

原文地址:http://www.cnblogs.com/jshtest/p/6257036.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!