• Selenium数据驱动测试模型和实例


    模块驱动的模型虽然解决了脚本的重复问题,但是需要测试不同数据的用例时,模块驱动的方式就不很适合了。 数据驱动就是数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变。 装载数据的方式可以是列表、字典或是外部文件(txt、csv、xml、excel),目的就是实现数据和脚本的分离。

    代码实现如下:(文章代码url地址为内部地址,我隐藏掉了,你们可以换成其他地址哦)

    # #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    # @Time : 2020/8/13 13:46
    # @Author : Gengwu
    # @FileName: LoginClass_Para.py
    # @Software: PyCharm
    
    from  selenium import  webdriver
    from  time import  sleep
    from selenium.webdriver.common.action_chains import ActionChains
    
    class Login(): #定义一个类,类下面封装两个方法,一个登录,一个退出
        def user_login(self,driver,username,password):
            # 清除用户名的框,防止自动带入
            driver.find_element_by_id('account').clear()
            driver.find_element_by_id('account').send_keys(username)
    
            # 清除密码的框,防止自动带入
            driver.find_element_by_id('password').clear()
            driver.find_element_by_id('password').send_keys(password)
    
            # 点击登录按钮
            driver.find_element_by_css_selector(
                '#app > div > div > div.content > form > div.login-form-button-item > button').click()  # copy到selector
            sleep(2)
    
        def user_logout(self,driver):
            # 通过悬浮框定位到退出登录
            above = driver.find_element_by_class_name('author')
            ActionChains(driver).move_to_element(above).perform()
            driver.find_element_by_link_text('退出登录').click()
    
            sleep(2)
            # 点击弹框的确定按钮
            driver.find_element_by_css_selector('.ant-modal-body .ant-btn-primary').click()
            sleep(2)

    数据驱动调用——实现多个账户登录

    # #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    # @Time : 2020/8/13 14:11
    # @Author : Gengwu
    # @FileName: CallLogin_Para.py
    # @Software: PyCharm
    
    from selenium import webdriver
    from time import sleep
    from LoginClass_Para import *
    
    
    
    driver=webdriver.Chrome()
    driver.get('https://qa***.com/')
    driver.maximize_window()
    driver.implicitly_wait(10)
    sleep(3)
    
    Login().user_login(driver,'admin','admin')
    sleep(3)
    Login().user_logout(driver)
    
    Login().user_login(driver,'test','123456')
    sleep(3)
    Login().user_logout(driver)
    
    sleep(3)
    driver.quit()

    脚本放到同一个文件夹下,就可以试下调用。

    以上如果有问题欢迎随时沟通和交流。

    Best Regards!
    Make a little progress every day!
  • 相关阅读:
    AutomaticallyProfile 自动化引擎 MyBatis和DB沟通的引擎 (根据数据库信息自动给生成实体类那些...)
    经典aop,
    IOC和DI区别,aop的第一个案例,注入方式(7种),aop的7个专业术语,注解的DI,代理(动态代理,静态代理)
    AOP(AOP概念,AOP专业术语,单例模式,bean的id和name属性,基于xml的DI, 构造注入,命名空间p注入,集合属性注入, List 配置文件)
    ajax
    spring基础
    一对多,多对一,自关联,多对多,一级缓存,二级缓存
    hql语法
    sql操作语言
    Oracle函数
  • 原文地址:https://www.cnblogs.com/gengwulovestudy/p/13496649.html
Copyright © 2020-2023  润新知