首次书写博客,记录下写的自动化接口框架,框架比较简单,哈哈哈,算是记录下历程把!~~~

一、本次框架由python3.6 书写

  1、准备代码环境,下载python3.6    下载地址:https://www.python.org/downloads

  2、下载pycharm 软件。

二、开始创建python接口自动化框架:

  1、这是我创建的框架中的各个文件夹,分别有config  配置文件夹、fengzhuang   将接口用get post  两种传输方式进行封装并自动来区分执行。

  2、logfile 用来存放测试用例执行后 ,log日志的保存。

  3、public_common  用来存放一些公共的方法,比如断言、日志、获取excel表格中的用例。

  4、result  用来存放运行测试用例后,生成的html报告。

  5、test_case 用来存放测试用例代码。

  6、test_case_data用来存放测试的excel测试用例。

  7、最重要的脚本运行的入口。

三、文件夹代码开始填充:

  1、config文件夹中创建Config_file.py 文件。应为我Config_file文件中只书写了一个失败重试的次数限制,就不截图显示了,哈哈  自己写下就好

  2、logs文件夹中创建logtest文件夹(logtest的意思是曾经写了一个log文件  感觉不太好,又从新写了一个以test命名来进行实验的一直也就没改,哈哈)

    2.1、先创建一个log代码,来进行log的获取与存储。当没有log文件储存的文件夹logfile是会自动创建一个

   3、log已经创建成功后,改开始进行接口GET POST  传输带的参数进行一个代码书写。

    3.1:get与post 分别创建了两个函数因为post与get的代码差不多  就不对post进行截图了,此代码是对接口进行请求并将返回的json数据进行转换并对代码进行容错(容错位置可能有问题,如果没成功,可以下方评论联系我!)

  4、请求参数代码创建完成后,对数据可以进行断言来判断返回的数据是否准确喽:

    4.1、我在上方先导入了一个log文件,一个图没截下来,再次说明下哈,

因为我写的是PHP的接口返回,我的接口返回的数据主要判断下接口里data list  中是否有数据  ,现在判断的比较简单,断言的name主要是用在case运行时带一个用例名称好进行纪录。

  5、现在数据传参、断言下面 对case中返回的接口传输方式get、post  进行一个封装,使其自动进行判断 啦啦啦 !

    5.1、上代码

两个图截的有点low了 ,再次说一下哈,getJson这个函数是一个,只是将返回的进行一个转换后在返回给调用的,也可以自己在进行优化的,这段代码主要时对excel中的用例里面,在excel中单独放了一个字段  fangshi   对这字段来进行一个检查,如果时post则会进行判断自动调用post方法  ge't相同方式。

  6、好了到这里一些,来进行一项重要的,读取excel中用例。

    6.1、上代码

先导入xlrd 模块,先创建一个空list,因为我将case的数据都写在了sheet1页面中了,所以直接就写死了,这里需要的可以自己写一下,这段代码里进行按照行进行了循环查找并将每一行传唤成一个dict形式,并添加带list中最后返回list。

  7、获取excel文件的方式也写完了,开始写case的框架来进行运行了

    7.1、上代码

这段代码中有一个注释掉的,时进行测试的修改错误的,可以忽略掉。这里主要我将excel文件夹的路径直接写到了cese中,因为在excel中导出的数据时list形式,我将其进行一个循环来拿出数据进行,毕竟excel中会有很多的case来进行测试。最后对代码进行断言,在断言代码中的name字段在这里用到,用来获取excel中case中的名称,在生成log时会有一个标识,好进行跟踪。当然在这里我进行了错误错误代码,运行失败后,限制重试的次数,用到的就是Config文件中限制的次数。好了到这里接口自动化测试框架已经完成了很大的一部分了,下面就开始出现运行入口。(我这里用的UNITEST 框架,因为HTML报告没有自己写,用来一个省事的哈哈。以后会修改的。)

  8、框架运行的入口:

    8.1、上代码:

这里为框架运行的入口代码,里面有一个发邮件的功能,只是我还没有写成功,能发邮件 但是附件没带成功,sendmail文件我就没在这次书写上 ,后面的文章中,我会加上的。

四、以上为我写的接口自动化框架的基本代码,书写的比较简陋,可能规范也欠缺,哈哈  不过纪录下历程和新手学习下还算过的去

五、html测试报告样式

  5.1样式比较简单,哈哈  后续会优化的。

六、欢迎各位进行查看并指出错误。哈哈   代码借鉴了  雷子的博客。

最新文章

  1. Unity3d刚体Rigidbody与碰撞检测Collider
  2. js设计模式总结-迭代器模式
  3. [转]关于vs调试正确。但是发布到iis就出现无法访问后天局面
  4. wpf 拖图片到窗体
  5. TRMM数据的读取
  6. OpenCV 2.2版本号以上显示图片到 MFC 的 Picture Control 控件中
  7. C++容器类的简介
  8. Head First --- Python 第一章
  9. 【机房系统知识小结点系列】之遍历窗体中的控件,判断Text是否为空?
  10. .NET 简单多线程
  11. Python - 浅谈Python的编译与反编译
  12. 大杂烩 -- Java内存布局【图】以及java各种存储区【详解】
  13. RelativeSource的用法
  14. 实现iOS序列化与反序列化(runtime)
  15. Objective-C语法之NSSortDescriptor
  16. Oracle中文字符乱码?设置Oracle客户端字符编码与服务端一致
  17. poj1463 Strategic game【树形DP】
  18. Verilog笔记.5.同步、异步
  19. 【bzoj2929】[Poi1999]洞穴攀行 网络流最大流
  20. rabbitmqctl 报错

热门文章

  1. IntelliJ IDEA 环境设置——侧栏显示类中所有方法
  2. Win10中创建Hyper-V虚拟机
  3. redis学习-简介
  4. session 与 cookie 区别-----https://segmentfault.com/a/1190000013447750?utm_source=tag-newest
  5. java 生成20位唯一ID,生成不会重复的20位数字----https://blog.csdn.net/weixin_36751895/article/details/70331781
  6. H5存储------localStorage和sessionStorage
  7. 非常适合新手的jq/zepto源码分析04
  8. python列表可以加可以乘
  9. centos 如何安装软件
  10. iOS常用的宏定义总结