一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典
简历模板![在这里插入图片描述](https://img-blog.csdnimg.cn/646863996ac44da8af500c049bb72fbd.png#pic_center)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
接下来,公共方法的开发
整体结构有了划分,接下来就该一步步的填充整个框架了,我们先来看看Base文件中的公共类或函数,这主要用于后续测试case的调用,所有公共的、一成不变的数据都可以放在这里,维护也方便
配置文档如下
[DATABASE]
data_address = ./data/
report_address = ./report/
[HTTP]
base_url = http://xxx.xx
复制代码复制代码
想知道怎样从配置文档中得到或写入相应的数据吗?那继续看吧
import os
import configparser
# 获取当前py文件地址
proDir = os.path.split(os.path.realpath(__file__))[0]
# 组合config文件地址
configPath = os.path.join(proDir,"config.ini")
class ReadConfig:
def __init__(self):
#获取当前路径下的配置文件
self.cf = configparser.ConfigParser()
self.cf.read(configPath)
def get_config(self,field,key):
#获取配置文件中的key值
result = self.cf.get(field,key)
return result
def set_config(self,field,key,value):
#向配置文件中写入配置信息
fb = open(configPath,'w')
self.cf.set(field,key,value)
self.cf.write(fb)
复制代码复制代码
那问题又来了,我们的测试数据放在哪里?怎么取值?怎么写入?怎么保存?。。。
别急,接着往下看
测试数据优先考虑放在excel或database中,此处以excel为例做个简单介绍
这里需要用到两个操作表格的库,xlrd数据驱动的读取,作用于excel文档,但xlrd不能写入数据,所以引入xlutils数据驱动的读取和写入
安装方法可以用pip3 install xlrd和pip3 install xlutils 来安装。
import xlrd
import xlutils.copy
from Base.readConfig import ReadConfig
import time
class ReadExcel:
def __init__(self,section,field,sheet):
# 打开工作表,并定位到sheet
data_address = ReadConfig().get_config(section,field)
workbook = xlrd.open_workbook(data_address)
self.table = workbook.sheets()[sheet]
def get_rows(self):
# 获取excel行数
rows = self.table.nrows
return rows
def get_cell(self,row,col):
# 获取单元格数据
cell_data = self.table.cell(row,col).value
return cell_data
def get_col(self,col):
# 获取整列数据
col_data = self.table.col_value(col)
return col_data
class WriteExcel:
def __init__(self,section,field,sheet):
# 打开工作表
self.address = ReadConfig().get_config(section,field)
self.workbook = xlrd.open_workbook(self.address)
self.wf = xlutils.copy.copy(self.workbook)
self.ws = self.wf.get_sheet(sheet)
def set_cell(self,row,col,value):
#设置单元格数据
self.ws.write(row,col,value)
def save_excel(self,filename,format):
#获取当前时间
self.time = time.strftime("%Y%m%d%H%M%S", time.localtime())
#生成文件的文件名及格式
self.report = filename + '_' +self.time + format
#保存文件
self.wf.save(self.report)
复制代码复制代码
然后,测试脚本的编辑
一切准备就绪,下面通过一个简单的、完整的代码进行演示公共函数的调用,框架的使用及报告的生成
import unittest
import requests
from Base.readConfig import ReadConfig
from Base.readExcel import ReadExcel
from Base.readExcel import WriteExcel
#实例化
readexcel = ReadExcel('DATABASE','data_address',0)
writeexcel = WriteExcel('DATABASE','data_address',0)
class testcase(unittest.TestCase):
#初始化
def setUp(self):
#获取url
self.base_url = ReadConfig().get_config('HTTP', 'base_url')
self.url = self.base_url + readexcel.get_cell(1,1)
#获取请求头
self.headers = readexcel.get_cell(1,4)
def test_case(self):
nok = 0
ner = 0
# 循环读取excel中的测试数据,进行结果验证,并生成excel形式的测试报告
for i in range(3,readexcel.get_rows()):
#发送网络请求,得到响应值
response = requests.post(self.url, headers=self.headers, data=readexcel.get_cell(i,4).encode('utf-8'))
actualresult = response.json()
#获取excel中的预期结果
expectresult = eval(readexcel.get_cell(i,6))
# 获取需验证的数据
key = eval(readexcel.get_cell(i, 5))
keylen = len(key)
j = 0
for k in range(keylen):
aresult = 'actualresult' + key[k]
eresult = 'expectresult' + key[k]
if eval(aresult) == eval(eresult):
#预期结果和实际结果一致
j = j + 1
if j == keylen:
#测试数据执行通过
nok = nok + 1
writeexcel.set_cell(i, 8, 'SUCCESS')
else:
# 测试数据执行失败,并将实际结果写入excel
ner = ner + 1
writeexcel.set_cell(i, 8, 'FAILURE')
writeexcel.set_cell(i, 7, str(actualresult))
print('第', i + 1, '行用例执行失败:预期结果是', expectresult, '实际结果是', actualresult)
# 保存测试报告
writeexcel.save_excel('testreport', '.xls')
print('测试数据中总共', nok, '条用例执行通过', ner, '条用例执行失败')
#释放资源
def tearDown(self):
pass
if __name__ == '__main__':
#构造测试集合
suite = unittest.TestSuite()
suite.addTest(testcase('test_case'))
#创建html文件
filename = ReadConfig().get_config('DATABASE', 'report_address') + 'testreport.html'
fb = open(filename,"wb")
#执行测试并生成html测试报告
runner = HTMLTestRunner.HTMLTestRunner(stream = fb,description = '针对接口的描述信息',title = '某某的自动化测试报告')
runner.run(suite)
#关闭文件
fb.close()
复制代码复制代码
最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!