基于Python ddt, selenium数据驱动测试实例1

#!/usr/bin/python
# -*- coding: utf-8 -*-

'''
Created on 2015-04-27
@author: beyondzhou
@name: logintest.py
'''

import unittest
from ddt import ddt, data, unpack
from selenium import webdriver
import os
import time
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By

@ddt
class LoginTest(unittest.TestCase):

    @classmethod
    def setUp(cls):
        # Get the driver of chrome
        chromedriver = "C:\Program Files\Google\Chrome\Application\chromedriver.exe"
        os.environ["webdriver.chrome.driver"] = chromedriver
        cls.browser = webdriver.Chrome(chromedriver)
        cls.browser.get('http://10.10.51.150')
        time.sleep(1)

    @data(("admin", "pica8", "Configuration"), ("admin", "pica9", "Invalid username or password"))
    @unpack
    def test_login_in(self, username, password, expected_value):
        # test login in
        self.browser.find_element_by_xpath("//input[@placeholder='Username']").send_keys(username)
        self.browser.find_element_by_xpath("//input[@placeholder='Password']").send_keys(password)
        self.browser.find_element_by_tag_name("button").click()
        time.sleep(1)
        self.assertTrue(self.is_content_present("%s" % expected_value)) 

    def is_element_present(self, how, what):
        """
        Utility method to check presence of an element on page
        :params how: by locator type
        :params what: locator value
        """
        try:
            self.browser.find_element(by=how, value=what)
        except NoSuchElementException, _:
            return False
        return True

    def is_content_present(self, what):
        """
        Utility method to check presence of an element on page
        :params what: content value
        """
        try:
            self.browser.find_element(by=By.XPATH, value="//*[contains(text(), '%s')]" % what)
        except NoSuchElementException, _:
            return False
        return True

    @classmethod
    def tearDown(cls):
        # define when you need
        cls.browser.quit()

if __name__ == '__main__':
    unittest.main(verbosity=2)

Result:

test_login_in_1___admin____pica8____Configuration__ (__main__.LoginTest) ... ok
test_login_in_2___admin____pica9____Invalid_username_or_password__ (__main__.LoginTest) ... ok

----------------------------------------------------------------------
Ran 2 tests in 17.688s

OK
时间: 2024-10-06 20:51:11

基于Python ddt, selenium数据驱动测试实例1的相关文章

基于Python Requests的数据驱动的HTTP接口测试

发表于:2017-8-30 11:56  作者:顾翔   来源:51Testing软件测试网原创 http://www.51testing.com/html/69/n-3720769-2.html 1.测试金字塔 图 1软件测试金字塔 图 1是Main Cohn提出的软件测试金字塔,他认为作为一个测试工程师应该把大量的工作花在单元测试和接口测试,而其余的发在UI测试以及探索式测试.纵然,单元测试的优点很突出,它接近于代码本身,运行速度快,开发可以一边写产品代码一边写单元测试代码,一旦在单元测试中

基于python的性能负载测试Locust-1 简介

官网: http://locust.io/GitHub: https://github.com/locustio/locust 简介 Locust 是一个开源负载测试工具.使用 Python 代码定义用户行为,也可以仿真百万个用户.Locust 是非常简单易用,分布式,用户负载测试工具.Locust 主要为网站或者其他系统进行负载测试,能测试出一个系统可以并发处理多少用户.Locust 是完全基于时间的,因此单个机器支持几千个并发用户.相比其他许多事件驱动的应用,Locust 不使用回调,而是使

selenium学习:数据驱动测试实例之参数化51cto登录

封装模块文件public_1.py #coding=utf-8 from selenium import webdriver from time import sleep class Login():              #登陆     def user_login(self,driver,username,password):         driver.find_element_by_id("loginform-username").clear()         driv

基于python的性能负载测试Locus-2-快速入门

快速入门 Example locustfile.py 这是一个快速入门的小例子 locustfile.py: from locust import HttpLocust, TaskSet def login(l): l.client.post("/login", {"username":"ellen_key", "password":"education"}) def index(l): l.client.

基于python的selenium两种文件上传操作

方法一.input标签上传     如果是input标签,可以直接输入路径,那么可以直接调用send_keys输入路径,这里不做过多赘述,前文有相关操作方法. 方法二.非input标签上传 这种上传方式需要借助第三方工具,主要有以下三种情况: 1.AutoIt  去调用它生成的au3或者exe格式的文件 2.SendKeys第三方库(目前只支持到2.7版本) 网址:https://pypi.python.org/pypi/SendKeys 3.Python的pywin32库,通过识别对话框句柄来

基于python和selenium的刷网课的代码

主要是通过使用selenium的查找定位来实现,同时通过time.sleep来控制时间网址:http://hrbj.21tb.com里面的课程挺不错的,都是一些别的网站上的付费教程.(不得不感慨,铁路系统待遇就是好呀.别人花钱想买的和想求的资源,免费看都懒得看)这个刷课主要是替代人的操作.没用什么脚本或者加速什么的,全部都是实打实的播放.打算挂机刷网课的小伙伴们,可以参考一下! ? from selenium import webdriverimport jsonimport timefrom

selenium 数据驱动化实例

#encoding=utf-8class Login():def __init__(self):self.driver=driverdef login(self,username,password):self.driver.find_element_by_id("idInput").clear()self.driver.find_element_by_id("idInput").send_keys(username)self.driver.find_element_

Python+Selenium笔记(十二):数据驱动测试

(一)   前言 通过使用数据驱动测试,实现对输入值和预期结果的参数化.(例如:输入数据和预期结果可以直接读取Excel文档的数据) (二)   ddt 使用ddt执行数据驱动测试,ddt库可以将测试中的变量参数化.使用ddt的时候,在测试类上使用@ddt装饰符,在测试方法上使用@data装饰符.@data装饰符将参数当作测试数据,参数可以是单个值.列表.元组.字典.对于列表和元组,需要用@unpack装饰符把列表和元组解析成多个参数. 使用下面的命令安装ddt库 pip install ddt

Python Selenium 之数据驱动测试

数据驱动模式的测试好处相比普通模式的测试就显而易见了吧!使用数据驱动的模式,可以根据业务分解测试数据,只需定义变量,使用外部或者自定义的数据使其参数化,从而避免了使用之前测试脚本中固定的数据.可以将测试脚本与测试数据分离,使得测试脚本在不同数据集合下高度复用.不仅可以增加复杂条件场景的测试覆盖,还可以极大减少测试脚本的编写与维护工作. 下面将使用Python下的数据驱动模式(ddt)库,结合unittest库以数据驱动模式创建百度搜索的测试. ddt库包含一组类和方法用于实现数据驱动测试.可以将