Selenium自动化测试模型介绍。

    自动化测试模型分为四大类: 线性测试、 模块化驱动测试、 数据驱动测试和关键字驱动测试。

    本地Web测试站点搭建,下载:【一键安装包(运行环境+ECMS)】(含安装说明)。

  •     工具:帝国CMS

  •     通道:帝国软件

线性模式

       通过录制或编写对web的操作步骤产生相对应的线性脚本,并且每个测试脚本相对独立,不依赖或调用其他模块,单纯的模拟用户操作场景。

'''
自动化测试模型--线性测试
案例:在帝国软件主页模拟自动登录和退出操作。
'''

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
url = "http://localhost/"
driver.get(url)
# 设置隐性等待5s
driver.implicitly_wait(5)

userName = "XXXXX"
passWord = "XXXXX"

# 输入登录信息
driver.find_element_by_xpath("//form[@name='login']/input[3]").clear()
driver.find_element_by_xpath("//form[@name='login']/input[3]").send_keys(userName)
driver.find_element_by_xpath("//form[@name='login']/input[4]").clear()
driver.find_element_by_xpath("//form[@name='login']/input[4]").send_keys(passWord)

# 登录
driver.find_element_by_xpath("//form[@name='login']/input[5]").click()

sleep(3)

# 退出
driver.find_element_by_xpath("/html/body/table[1]/tbody/tr/td/table/tbody/tr/td[1]/a[6]").click()

sleep(3)

# 警告框处理
driver.switch_to_alert().accept()

sleep(3)
driver.quit()

模块化驱动测试

        把重复的操作代码封装为独立的公共模块,当需要用到这些模块时就直接调用,最大限度地消除了重复,从而提高测试用例的可维护性。

'''
自动化测试模型--模块化驱动测试
实例:将登录和退出操作封装为独立的公共模块进行调用。
'''

from selenium import webdriver
import time


class Login_OUT_Test():
    '''登录与退出'''

    def login_Test(driver):
        '''登录方法'''

        # self.userName=userName
        # self.passWord=passWord

        driver.find_element_by_xpath("//form[@name='login']/input[3]").clear()
        driver.find_element_by_xpath("//form[@name='login']/input[3]").send_keys("XXXX")

        driver.find_element_by_xpath("//form[@name='login']/input[4]").clear()
        driver.find_element_by_xpath("//form[@name='login']/input[4]").send_keys("XXXX")

        # 登录
        driver.find_element_by_xpath("//form[@name='login']/input[5]").click()

    def loginOut_Test(driver):
        '''退出方法'''

        driver.find_element_by_xpath("/html/body/table[1]/tbody/tr/td/table/tbody/tr/td[1]/a[6]").click()

        time.sleep(3)

        # 警告框处理
        driver.switch_to_alert().accept()


if __name__ == '__main__':
    driver = webdriver.Chrome()
    driver.get('http://localhost/')
    driver.maximize_window()
    driver.implicitly_wait(5)

    Login_OUT_Test.login_Test(driver)
    Login_OUT_Test.loginOut_Test(driver)

编写调用上段代码模块。

'''
调用Test_1230_02_MKHQD_CS模块
功能:登录和退出。
'''

from Test_1230_02_MKHQD_CS import *

browser = webdriver.Chrome()
browser.get('http://localhost/')
browser.maximize_window()
browser.implicitly_wait(5)

Login_OUT_Test.login_Test(browser)
Login_OUT_Test.loginOut_Test(browser)

browser.quit()

数据驱动测试

    类似于数据的参数化,因数据的改变从而让测试的结果产生变化。

'''
自动化测试模型--数据驱动测试
实例:实现多个账户登录。
'''

import time


class Login_OUT_Test():
    '''登录与退出'''

    def login_Test(driver, userName, passWord):
        '''登录方法'''

        # self.userName=userName
        # self.passWord=passWord

        driver.find_element_by_xpath("//form[@name='login']/input[3]").clear()
        driver.find_element_by_xpath("//form[@name='login']/input[3]").send_keys(userName)

        driver.find_element_by_xpath("//form[@name='login']/input[4]").clear()
        driver.find_element_by_xpath("//form[@name='login']/input[4]").send_keys(passWord)

        # 登录
        driver.find_element_by_xpath("//form[@name='login']/input[5]").click()

        # 验证登录信息
        Login_Validate = driver.find_element_by_xpath(
            "/html/body/table[1]/tbody/tr/td/table/tbody/tr/td[1]/font/b").text
        print('登录名:', Login_Validate)

    def loginOut_Test(driver):
        '''退出方法'''

        driver.find_element_by_link_text('退出').click()

        time.sleep(3)

        # 警告框处理
        driver.switch_to_alert().accept()

编写调用上段代码模块。

'''
调用Test_1230_04_SJQD_CS模块。
实例:实现不同账户信息登录。
'''
from Test_1230_04_SJQD_CS import *
from selenium import webdriver
import time

browser = webdriver.Chrome()
browser.get("http://localhost/")
browser.maximize_window()
browser.implicitly_wait(5)

Login_OUT_Test.login_Test(browser, 'XXXX1', 'XXXX1')

time.sleep(3)
Login_OUT_Test.loginOut_Test(browser)

# 第二次不同账户信息登录
Login_OUT_Test.login_Test(browser, 'XXXX2', 'XXXX1')
time.sleep(5)
Login_OUT_Test.loginOut_Test(browser)

关键字驱动测试

通过关键字的改变引起测试结果的改变。

目前的关键字驱动测试工具有:QTP、RIDE(Robot Framework)和selenium IDE。

selenium IDE工具页面如下:

发布了13 篇原创文章 · 获赞 14 · 访问量 914

猜你喜欢

转载自blog.csdn.net/qq_39979646/article/details/103766188
今日推荐