Python+Excel读取和存储测试数据完成接口自动化测试

Python+Excel读取和存储测试数据完成接口自动化测试 点击文末小卡片免费获取软件测试全套资料资料在手涨薪更快http_request2.py用于发起http请求#读取多条测试用例 #1、导入requests模块 import requests #从 class_12_19.do_excel1导入read_data函数 from do_excel2 import read_data from do_excel2 import write_data from do_excel2 import count_case #定义http请求函数 COOKIENone def http_request2(method,url,data): if methodget: print(发起一个get请求) resultrequests.get(url,data,cookiesCOOKIE) else: print(发起一个post请求) resultrequests.post(url,data,cookiesCOOKIE) return result #返回响应体 # return result.json() #返回响应结果结果是字典类型{status: 1, code: 10001, data: None, msg: 登录成功} #从Excel读取到多条测试数据 sheets[login,recharge,withdraw] for sheet1 in sheets: max_rowcount_case(sheet1) print(max_row) for case_id in range(1,max_row): dataread_data(sheet1,case_id) print(读取到第{}条测试用例:.format(data[0])) print(测试数据 ,data) #print(type(data[2])) #调用函数发起http请求 resulthttp_request2(data[4],data[2],eval(data[3])) print(响应结果为 ,result.json()) if result.cookies: COOKIEresult.cookies #将测试实际结果写入excel #write_data(case_id1,6,result[code]) write_data(sheet1,case_id1,7,str(result.json())) #对比测试结果和期望结果 if result.json()[code]str(data[5]): print(测试通过) #将用例执行结果写入Excel write_data(sheet1,case_id1,8,Pass) else: write_data(sheet1,case_id1,8,Fail) print(测试失败)do_excel2.py完成对excel中用例的读、写、统计# 导入load_workbook from openpyxl import load_workbook #读取测试数据 #将excel中每一条测试用例读取到一个列表中 #读取一条测试用例——写到一个函数中 def read_data(sheet_name,case_id): # 打开excel workbook1load_workbook(test_case2.xlsx) # 定位表单test_data sheet1workbook1[sheet_name] print(sheet1) test_case[] #用来存储每一行数据也就是一条测试用例 test_case.append(sheet1.cell(case_id1,1).value) test_case.append(sheet1.cell(case_id1,2).value) test_case.append(sheet1.cell(case_id1,3).value) test_case.append(sheet1.cell(case_id1,4).value) test_case.append(sheet1.cell(case_id1,5).value) test_case.append(sheet1.cell(case_id1,6).value) return test_case #将读取到的用例返回 #调用函数读取第1条测试用例并将返回结果保存在data中 # dataread_data(1) # print(data) #将测试结果写会excel def write_data(sheet_name,row,col,value): workbook1load_workbook(test_case2.xlsx) sheetworkbook1[sheet_name] sheet.cell(row,col).valuevalue workbook1.save(test_case2.xlsx) #统计测试用例的行数 def count_case(sheet_name): workbook1load_workbook(test_case2.xlsx) sheetworkbook1[sheet_name] max_rowsheet.max_row #统计测试用例的行数 return max_rowtest_case2.xlsx存储测试用例补充知识python用unittestHTMLTestRunnercsv的框架测试并生成测试报告直接贴代码import csv # 导入scv库可以读取csv文件 from selenium import webdriver import unittest from time import sleep import time import os import HTMLTestRunner import codecs import sys dr webdriver.Chrome() class testLo(unittest.TestCase): def setUp(self): pass def test_login(self): 登陆测试 path F:\\Python_test\\ # 要读取的scv文件路径 my_file F:\\pythonproject\\interfaceTest\\testFile\\ss.csv # csv.reader()读取csv文件 # Python3.X用openPython2.X用filer为读取 # open(file,r)中r为读取权限w为写入还有rbwd等涉及到编码的读写属性 #data csv.reader(codecs.open(my_file, r, encodingUTF-8,errors ignore)) with codecs.open(my_file, r, encodingUTF-8,errors ignore) as f: datacsv.reader((line.replace(\x00,) for line in f)) # for循环将读取到的csv文件的内容一行行循环这里定义了user变量(可自定义) # user[0]表示csv文件的第一列user[1]表示第二列user[N]表示第N列 # for循环有个缺点就是一旦遇到错误循环就停止所以用tryexcept保证循环执行完 print(my_file) for user in data: print(user) dr.get(https://passport.cnblogs.com/user/signin) # dr.find_element_by_id(input1).clear() dr.find_element_by_id(input1).send_keys(user[0]) # dr.find_element_by_id(input2).clear() dr.find_element_by_id(input2).send_keys(user[1]) dr.find_element_by_id(signin).click() sleep(1) print(\n 测试项 user[2]) dr.get_screenshot_as_file(path user[3] .jpg) try: assert dr.find_element_by_id(user[4]).text try: error_message dr.find_element_by_id(user[4]).text self.assertEqual(error_message, user[5]) print(提示信息正确预期值与实际值一致:) print(预期值 user[5]) print(实际值: error_message) except: print(提示信息错误预期值与实际值不符) print(预期值 user[5]) print(实际值: error_message) except: print(提示信息类型错误,请确认元素名称是否正确) def tearDown(self): dr.refresh() # 关闭浏览器 dr.quit() if __name__ __main__: # 定义脚本标题加u为了防止中文乱码 report_title u登陆模块测试报告 # 定义脚本内容加u为了防止中文乱码 desc u登陆模块测试报告详情 # 定义date为日期time为时间 date time.strftime(%Y%m%d) time time.strftime(%Y%m%d%H%M%S) # 定义path为文件路径目录级别可根据实际情况自定义修改 path F:\\Python_test\\ date \\login\\ time \\ # 定义报告文件路径和名字路径为前面定义的path名字为report可自定义格式为.html report_path path report.html # 判断是否定义的路径目录存在不能存在则创建 if not os.path.exists(path): os.makedirs(path) else: pass # 定义一个测试容器 testsuite unittest.TestSuite() # 将测试用例添加到容器 testsuite.addTest(testLo(test_login)) # 将运行结果保存到report名字为定义的路径和文件名运行脚本 report open(report_path, wb) #with open(report_path, wb) as report: runner HTMLTestRunner.HTMLTestRunner(streamreport, titlereport_title, descriptiondesc) runner.run(testsuite) # 关闭report脚本结束 report.close()csv文件格式备注使用python处理中文csv文件并让execl正确显示中文避免乱码设施编码格式为utf_8_sig示例 将结果导出到result.csv中,以UTF_8 with BOM编码微软产品能正确识别UTF_8 with BOM存储的中文文件存储 #data.to_csv(result_utf8_no_bom.csv,encodingutf_8)#导出的结果不能别excel正确识别 data.to_csv(result_utf8_with_bom.csv,encodingutf_8_sig)以上这篇python利用Excel读取和存储测试数据完成接口自动化教程就是小编分享给大家的全部内容了希望能给大家一个参考。最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。