自动化工具 开源啦~接口自动化测试平台

yuan · 2018年07月05日 · 最后由 我叫不迷糊 回复于 2018年12月04日 · 6806 次阅读

序言

对于接口自动化这方面断断续续也研究了好久了,从最开始自己写小框架+excel数据来驱动;然后到基于flask前后端结合在一起弄平台,最后到现在的前后端分离开发出的这平台,感触颇深啊,额额额,开源啦,代码写得糟糕,有问题啊、优化啊、建议啊、等等希望能指点指点,qq:362508572 ~~~

基本结构

前端:js vue element-ui

github地址:https://github.com/pencil1/ApiTestWeb

后端:python flask httprunner

github地址: https://github.com/pencil1/ApiTestManage

粗略的页面介绍

首先,因为是基于九毫大神开源的httprunner接口自动化框架,里面一些编写规则就不详细介绍了

登录页面

这个就不详细说了,登录就那样子了呀

项目页面

包含:

  • 基础信息

里面的基础url可填入多个,因为目前的公司项目有可能一个业务下来牵扯到几个base_url,这个base_url到时和是接口url拼接起来组合成一个完整的请求

  • 公用变量

这个就是定义一个项目下,通用的变量了

  • 公用请求头部

这个就是定义一个项目下,通用的请求头部了

下面请看截图介绍



模块页面

这个比较简单,就是定义项目下的模块,感觉起到一种中介的作用,让接口信息按一定分类定义下来(模块下才可创建接口信息)

接口信息页面

填写规则基本就是按照httprunner来了,文件传输就区分json格式和data格式的,再加个支持文件传输
该业务支持同时勾选多个接口信息来调试,方便与后续业务集的便利添加不用重复调试





配置页面

可单独添加一些不同的配置信息,就拿公用变量哪里说明吧,主要是为了后面的业务集快捷添加配置,可导入在后续介绍中的函数文件来实现自定义的一些函数功能


业务页面

先说明一下一个业务里面两个tab,业务集合和接口用例的关系,接口用例就是搜索出相关的接口信息出来,然后勾选后点击添加,就把接口信息添加到业务集合里面去,一个接口信息支持多次添加从而组成一个业务集合,业务集合那里,点击配置后,可二次修改接口信息的一些相关内容,并设置hock函数和该用例的名称

然后业务变量,可快速添加在配置文件中的配置,添加完之后可二次修改内容




内置函数页面

可自行创建属于自己的py文件,写入属于自己的业务函数,方便自己负责的项目的接口信息的调用等等

测试报告页面

按上述的描述,会已最小单元为业务集进行回归测试,并同时生成报告

定时任务页面

可添加定时任务,周期性的和一次性的也可以添加

目前先写到这里,之后的开源需要慢慢整理一下,截图颇多,感觉大家能看到这里

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 40 条回复 时间 点赞

vue element-ui,天下人共爱之😂

开源么?😀

yuan #3 · 2018年07月06日 作者
九毫 回复

嗯,开源,不过需要整理一下才行

不赖,能分享下?

yuan #5 · 2018年07月06日 作者
曼曼 回复

会的,不过需要点时间整理一下

现在可以用吗?

学习一下

学习学习

开源吧 放出来

仅楼主可见
yuan #11 · 2018年07月06日 作者
回复

这个本来打算弄的,然后想了一下,好像没必要去弄

yuan 关闭了讨论 07月06日 17:41
yuan 重新开启了讨论 07月06日 17:41

excel是用来干啥子的?excel如果用来管理测试数据的时候,多个人一起写用例,合并代码的时候,会不会原地爆炸....

yuan #15 · 2018年07月09日 作者
韩将 回复

可能以前用到xlrd这些库,现在没用了,忘了删掉~~

yuan 回复

sql能加不

yuan #17 · 2018年07月09日 作者
letme 回复

数据存储是用sqlite,你说的sql指的是?

yuan 回复

调用开发的数据库

yuan #19 · 2018年07月09日 作者
letme 回复

调用开发的数据库目的是断言接口是否正确?断言支持函数,可以自己编写函数去连接数据库获取信息来判断

yuan 回复

我传参可能会选择开发数据库查询出来的数据作为参数值,这样保证我的值是动态的;就算数据更改了,对于我的接口来说其实是没有变化的,不然数据一变,你的参数就要重新设置一次。或者我可能会去直接操作数据库,去创建一些数据,达到接口测试前置的目的,或者接口测试后对数据进行复原。

yuan #21 · 2018年07月09日 作者
letme 回复

你可以详细看看httprunner开源库,参数的值也可以引用函数来动态改变~~应该是可以符合你的要求的

接口测试平台主要是辅助我们测试使用,而不是为了自动化测试研发接口测试平台!
说几个测试过程中可能遇到的问题:
1、form表单存在编码,编码格式是GBK;
2、字段是gzip压缩的json字符串,业务流程测试过程中json是动态变化的;
3、加密与签名是否支持?
4、流程测试流程中数据库检查点是否支持?
5、是否支持公司内部Java rpc调用(如阿里dubbo)?
6、能帮助开发自测吗?

yuan #23 · 2018年07月10日 作者
qianxing 回复

针对你说的问题(因为后端是基于httprunner来接口测试的,功能也大部分实现,就那现成httprunner作者的话题来解答):
1、编码格式的话,https://testerhome.com/topics/13523hock函数,在请求发送前对表单进行编码转换,我觉得可以用
2、json字符串里面也是可以引用参数或者函数的
3、https://testerhome.com/topics/9389,加密和签名,也就是函数的引用可解决
4、流程测试时的数据库检查点,可以参考httprunner最后的判断机制(也支持自定义判断函数),或者在hock函数中,用例执行后调用函数读取数据库判断
5、rpc这个好吧,不太懂,不过我的理解是,现在这个平台前端后端都是通过接口来交互的,所以也可以放弃前端,直接发协议的形式去启动服务器跑用例等等
6、这个就~~看情况吧

多谢楼主,最近想写java版的页面测试工具

yuan 回复

问题1、2、3都是可以解决的,但都是需要对工具进行二次开发才能实现。
问题4使用hock可以解决问题,但是为何不把数据库相关的操作也看作接口呢?

建议将协议、接口参数、断言分离,协议可以是对mysql、http(s)、dubbo、mq、redis、mongo等公共组件操作的封装。

yuan #27 · 2018年07月10日 作者
qianxing 回复

你说的这些公共组件操作,感觉每个公司都有不一样的需求,如果自己需要要自己封装符合业务的呀~~

仅楼主可见
yuan · #29 · 2018年07月11日 作者
仅楼主可见
yueyawan 回复

我最近也在思考如何搭建框架呢,也打算用 java,到时候一起沟通哦

有木有根据json-schema 自动生成测试脚本的

支持下

yuan #33 · 2018年07月25日 作者
水青 回复

😀

仅楼主可见
yuan #35 · 2018年07月31日 作者
gylinchunsheng 回复

可以

老兄,可不可以测DUBBO?可以测的话,你就牛逼了

yuan #37 · 2018年08月01日 作者
测试的 回复

目前应该是不行的😅

yuan 自动化平台部署篇 中提及了此贴 08月03日 17:06

大佬 可不可以告诉下 你的测试报告页面前端是怎么做的 我也想写一个这样的页面,但是不知道怎么写啊

yuan #40 · 2018年10月23日 作者
围城 回复

不是已经放了github地址么?直接看代码就好了呀

仅楼主可见
yuan #42 · 2018年11月21日 作者
Feng 回复

加个好友详细说说,不然我也不怎么清楚问题

厉害厉害

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册