在前面的
postman接口用例转化为python自动化测试用例
postman接口用例转化为python自动化测试用例(二)
postman接口用例转化为python自动化测试用例(三)
python自动化测试用例之----引入ddt数据驱动
python接口自动化测试完毕--钉钉发送测试结果
几篇文章中,对接口测试进入了大致的讲解,但是前面的没有对代码进行抽离设计,整体的目录都是在一块,看起来杂乱无章,让人头疼。甚至有时候看起来就是没有灵魂。很多人看到你的代码,都无从下眼,找不到怎么去看你的代码,怎么去理清你代码的思路呢。
在我看来,是需要对代码进行优化设计重构的,我们接下来看看应该怎么拆分呢,其实无外乎将一些代码封装抽离出来。但是怎么拆分呢。今天来看看我拆分的思路。也不算是设计吧,只是给大家讲讲我是怎么去拆分的。
目前代码如下所示,我的拆分呢,一般会这么拆分。
1.config 目录,放配置文件
2.common 目录,放通用文件
3.report目录,放测试报告
4.case目录,放测试用例
5.run文件,放执行代码
6.data目录,存放case的data数据文件
于是我按照这个思路对代码进行了一定的调整。
优化后的目录是这样的,我们看下优化后新增的run文件有里面都是实现了什么。
import unittestfrom common.HTMLTestRunnerCN import HTMLTestReportCNfrom common.senddingtalk import sendmessageif __name__ == "__main__": import os suit = unittest.TestSuite() loader = unittest.TestLoader() suit.addTests(loader.discover(os.getcwd()+"/case")) path=os.getcwd()+"/report" filePath = path+'/report.html' fp = open(filePath, 'wb') runner = HTMLTestReportCN( stream=fp, title='Test Report', description='Test Report' ) runner.run(suit) fp.close() sendmessage("测试报告执行完毕,请查阅")
这就是调整后新增的run.py文件,当然了,除了这个文件,其他文件也进行了一定的调整,获取测试用例的文件进行了优化,优化后的代码如下:
import osdef get(): reslut = [] path=os.getcwd() f=open(path+"/data/case.txt","r") all=f.readlines() for item in all: dictone={} reslut_all=item.split("|") dictone["url"]=reslut_all[0] dictone['data']=reslut_all[1] dictone['headers']=reslut_all[2] dictone['assert']=reslut_all[3] dictone['method']=reslut_all[4] reslut.append(dictone) return reslut
只是对文件增加了目录调整,这里的case,common,config 都是python的包,方便可以从中引用py文件。其他的可以直接创建文件。
到这里我们的代码分层抽离就调整完毕。整个抽离过程是简单的。只是让通用的地方,做通用的事。
善于优化,善于总结。
回归简单,回归简洁。
简单明了,分层设计。
始于简洁,终于优雅。
关注雷子说测试
如果感觉写的不错,请点击下在看。