m0_68760792 2022-05-03 00:12 采纳率: 50%
浏览 41
已结题

测试学员,希望大家为我解惑,这代码困扰我一天了,谢!

from HTMLTestRunner import HTMLTestRunner
import os
import time
import unittest
from ddt import ddt, data, unpack
from selenium import webdriver
import openpyxl

def read():
workbook = openpyxl.load_workbook('工作簿1.xlsx')
table = workbook['Sheet1']
zz = table.max_row
xx = table.max_column
alis = []
for i in range(1, zz + 1):
lis = []
for j in range(1, xx + 1):
lis.append(table.cell(i, j).value)
alis.append(lis)
return alis

@ddt
class Application(unittest.TestCase):
@data(*read())
@unpack
def test01_app(self, id, name, passwd):
print(id, name, passwd)
self.id = id
self.name = name
self.passwd = passwd
a = webdriver.Firefox()
a.get('https://mail.qq.com/')
a.switch_to.frame('login_frame')
a.find_element_by_id('u').send_keys(name)
a.find_element_by_id('p').send_keys(passwd)
a.find_element_by_id('login_button').click()
time.sleep(1)
a.quit()
def test02_app(self):
print('abc')
if name == 'main':
b = unittest.TestSuite()
b.addTest(Application('test01_app'))
file = open(os.getcwd() + '/report.html', 'wb')
c = HTMLTestRunner(stream=file, verbosity=2, title='我的表格', description='报告如下:')
c.run(b)
1 admin 123456
2 admin 123456
3 123456 123456
上面这个是xlsx表格,名字叫:工作簿1.xlsx

  • 写回答

1条回答 默认 最新

  • ritalee11 2022-05-07 15:03
    关注
    from HTMLTestRunner import HTMLTestRunner
    import os
    import time
    import unittest
    
    import requests
    from ddt import ddt, data, unpack
    from selenium import webdriver
    import openpyxl
    
    
    
    def read(): # 读取 Excel 里的数据 通过对行 列进行遍历 得到所有数据
        workbook = openpyxl.load_workbook('swork.xlsx')
        table = workbook['Sheet1']
        zz = table.max_row
        xx = table.max_column
        alis = []
        for i in range(1, zz + 1):
            lis = []
            for j in range(1, xx + 1):
                lis.append(table.cell(i, j).value)
                alis.append(lis)
        return alis
    
    @ddt
    class Application(unittest.TestCase):  # 继承自 unittest.TestCase
        @data(*read()) # ddt 的装饰器固定写法, 将 read方法里面返回的内容作为测试数据来执行 
        @unpack  # ddt 的装饰器固定写法,将 @data 里面返回的测试数据 进行分解,此处则是分解成id,name,passwd
        def test01_app(self, id, name, passwd):  # 测试用例
            print(id, name, passwd)
            self.id = id
            self.name = name
            self.passwd = passwd
            a = webdriver.Chrome()
            a.get('https://mail.qq.com/')
            a.switch_to.frame('login_frame')
            a.find_element_by_id('u').send_keys(name)
            a.find_element_by_id('p').send_keys(passwd)
            a.find_element_by_id('login_button').click()
            time.sleep(1)
            a.quit()
    
        def test02_app(self):
            print('abc')
    
    if __name__ == '__main__':
        b = unittest.TestSuite()  # 多个测试用例放在一起 构成集合,就是TestSuite
        b.addTest(Application('test01_app'))  # 向测试集合内添加测试用例
        file = open(os.getcwd() + '/report.html', 'wb') # 打开一个用来保存报告的html文件
        # 实例 报告对象
        c = HTMLTestRunner.HTMLTestRunner(stream=file, verbosity=2, title='报告名称', description='报告如下:')
        # 运行测试用例
        c.run(b)
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月15日
  • 已采纳回答 5月7日
  • 创建了问题 5月3日

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题