前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python自动化之分层抽离设计

python自动化之分层抽离设计

作者头像
雷子
发布2021-03-15 16:12:20
7660
发布2021-03-15 16:12:20
举报
文章被收录于专栏:雷子说测试开发

在前面的

postman接口用例转化为python自动化测试用例

postman接口用例转化为python自动化测试用例(二)

postman接口用例转化为python自动化测试用例(三)

python自动化测试用例之----引入ddt数据驱动

python接口自动化测试完毕--钉钉发送测试结果

几篇文章中,对接口测试进入了大致的讲解,但是前面的没有对代码进行抽离设计,整体的目录都是在一块,看起来杂乱无章,让人头疼。甚至有时候看起来就是没有灵魂。很多人看到你的代码,都无从下眼,找不到怎么去看你的代码,怎么去理清你代码的思路呢。

在我看来,是需要对代码进行优化设计重构的,我们接下来看看应该怎么拆分呢,其实无外乎将一些代码封装抽离出来。但是怎么拆分呢。今天来看看我拆分的思路。也不算是设计吧,只是给大家讲讲我是怎么去拆分的。

目前代码如下所示,我的拆分呢,一般会这么拆分。

1.config 目录,放配置文件

2.common 目录,放通用文件

3.report目录,放测试报告

4.case目录,放测试用例

5.run文件,放执行代码

6.data目录,存放case的data数据文件

于是我按照这个思路对代码进行了一定的调整。

优化后的目录是这样的,我们看下优化后新增的run文件有里面都是实现了什么。

代码语言:javascript
复制
import unittest
from common.HTMLTestRunnerCN import HTMLTestReportCN
from common.senddingtalk import sendmessage
if __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文件,当然了,除了这个文件,其他文件也进行了一定的调整,获取测试用例的文件进行了优化,优化后的代码如下:

代码语言:javascript
复制
import os
def 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文件。其他的可以直接创建文件。

到这里我们的代码分层抽离就调整完毕。整个抽离过程是简单的。只是让通用的地方,做通用的事。

善于优化,善于总结。

回归简单,回归简洁。

简单明了,分层设计。

始于简洁,终于优雅。

关注雷子说测试

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档