数据驱动+自动化测试项目结果

数据驱动字典


"""
1、创建字典数据
2、导入ddt模块,帮助我们实现数据驱动
3、用ddt修饰,注解我的unittest
4、使用data修饰测试用例@data(*datavalue)
5、重新声明测试用例名称,test_very_01(self,para):
6、使用para["username"]
"""
import unittest
from ddt import ddt,data
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import time
import selenium.webdriver.support.ui as ui


@ddt
class verydows_reg(unittest.TestCase):
    datavalue =[{"username":"test","email":"123@qq.com","password":"123456"},
                {"username":"test1","email":"1213@qq.com","password":"1213456"}]

    def setUp(self) -> None:
        pass


    @data(*datavalue)
    def test_very_01(self,para):
        # driver是一个普通的变量
        driver = webdriver.Chrome()
        driver.get("https://www.baidu.com")

        # 通过ID定位文本框和百度一下
        driver.find_element_by_id("kw").send_keys(para["username"])
        driver.find_element_by_id("su").click()
        time.sleep(2)
        # 退出浏览器
        driver.quit()
        # driver.switch_to_window()

    def tearDown(self) -> None:
        pass

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

数据驱动Excel

在这里插入图片描述


"""
1、用excel表构造ExcelUtil()类创建字典数据
2、导入ddt模块,帮助我们实现数据驱动
3、用ddt修饰,注解我的unittest
4、使用data修饰测试用例@data(*datavalue)
5、重新声明测试用例名称,test_very_01(self,para):
6、使用para["username"]
"""
import unittest
from ddt import ddt,data
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import time
import selenium.webdriver.support.ui as ui
import numpy as np
import pandas as pd

import xlrd
class ExcelUtil():
    def __init__(self,eccelpath,sheetname="Sheet1"):
        self.data =xlrd.open_workbook(eccelpath)
        self.table =self.data.sheet_by_name(sheetname)
        # 获取第一行的key值
        self.keys =self.table.row_values(0)
        # print(self.keys)
        # 获取总行数
        self.rownum = self.table.nrows
        # print(self.rownum)
        # 获取总列数
        self.colnum = self.table.ncols
        # print(self.colnum)

    def dict_data(self):
        if self.rownum <= 1:
            print("总行数小于1")
        else:
            r=[]
            j=1
            for i in range(self.rownum-1):
                s={}
                # 从第二行取对应的values值
                values =self.table.row_values(j)
                # print(values)
                for x in range(self.colnum):
                    s[self.keys[x]] = values[x]
                r.append(s)
                j+=1
            return r





@ddt
class verydows_reg(unittest.TestCase):
    # datavalue =[{"username":"test","email":"123@qq.com","password":"123456"},
    #             {"username":"test1","email":"1213@qq.com","password":"1213456"}]

    exce =ExcelUtil(r"C:\Users\ming\Desktop\1.xlsx")
    datavalue =exce.dict_data()
    def setUp(self) -> None:
        pass


    @data(*datavalue)
    def test_very_01(self,para):
        # driver是一个普通的变量
        driver = webdriver.Chrome()
        driver.get("https://www.baidu.com")

        # 通过ID定位文本框和百度一下
        driver.find_element_by_id("kw").send_keys(para["username"])
        driver.find_element_by_id("su").click()
        time.sleep(2)
        # 退出浏览器
        driver.quit()
        # driver.switch_to_window()

    def tearDown(self) -> None:
        pass

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

自动化测试项目结果

在这里插入图片描述
public:登陆,登出,发邮件,写日志
test_case,测试用例文件,
test_data:csv,excel文件
test_report:报告

test.py代码如下:

# 在此文件进行测试用例的执行
import unittest
from HTMLTestRunner import HTMLTestRunner
import os
import time

path =os.path.dirname(__file__)+r"/test_case/"
pathreport = os.path.dirname(__file__)+r"/test_report/"
discover = unittest.defaultTestLoader.discover(path,pattern="ver*.py")
filename = time.strftime("%Y-%n-%d-%H-%M-%S")+r".html"
filename = pathreport +filename
# print(pathreport)
with open(filename,"w") as f:
    runner =HTMLTestRunner(f,verbosity=2,title="自动化用例测试执行", discover="xxx")
    runner.run(discover)

testcase代码

import unittest
from selenium import webdriver
import time
import os
import sys
path =os.path.dirname(os.path.dirname(__file__))+r"/public"
sys.path.append(path)
import public.logininmodule




class verydows_user_updata(unittest.TestCase):
    def setUp(self) -> None:
        self.l1 = vars()
        self.driver = webdriver.Chrome()
        self.l1 .login(self.driver)

    def test_user_01(self):
        self.driver.find_element_by_xpath().click()
        self.driver.find_element_by_xpath().clear()
        self.driver.find_element_by_xpath().send_keys("petter"
        )
        self.driver.find_element_by_xpath().click()
        time.sleep(2)
        actualvalue  =self.driver.find_element_by_xpath().get_attribute("value")
        exceptvalue = "petter"
        self.assertEqual(actualvalue,exceptvalue)



    def tearDown(self) -> None:
        pass


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




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值