对于接口自动化这方面断断续续也研究了好久了,从最开始自己写小框架 +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 文件,写入属于自己的业务函数,方便自己负责的项目的接口信息的调用等等
按上述的描述,会已最小单元为业务集进行回归测试,并同时生成报告
可添加定时任务,周期性的和一次性的也可以添加
目前先写到这里,之后的开源需要慢慢整理一下,截图颇多,感觉大家能看到这里
vue element-ui,天下人共爱之
开源么?
不赖,能分享下?
现在可以用吗?
学习一下
学习学习
开源吧 放出来
excel 是用来干啥子的?excel 如果用来管理测试数据的时候,多个人一起写用例,合并代码的时候,会不会原地爆炸....
我传参可能会选择开发数据库查询出来的数据作为参数值,这样保证我的值是动态的;就算数据更改了,对于我的接口来说其实是没有变化的,不然数据一变,你的参数就要重新设置一次。或者我可能会去直接操作数据库,去创建一些数据,达到接口测试前置的目的,或者接口测试后对数据进行复原。
接口测试平台主要是辅助我们测试使用,而不是为了自动化测试研发接口测试平台!
说几个测试过程中可能遇到的问题:
1、form 表单存在编码,编码格式是 GBK;
2、字段是 gzip 压缩的 json 字符串,业务流程测试过程中 json 是动态变化的;
3、加密与签名是否支持?
4、流程测试流程中数据库检查点是否支持?
5、是否支持公司内部 Java rpc 调用(如阿里 dubbo)?
6、能帮助开发自测吗?
针对你说的问题(因为后端是基于 httprunner 来接口测试的,功能也大部分实现,就那现成 httprunner 作者的话题来解答):
1、编码格式的话,https://testerhome.com/topics/13523hock 函数,在请求发送前对表单进行编码转换,我觉得可以用
2、json 字符串里面也是可以引用参数或者函数的
3、https://testerhome.com/topics/9389,加密和签名,也就是函数的引用可解决
4、流程测试时的数据库检查点,可以参考 httprunner 最后的判断机制(也支持自定义判断函数),或者在 hock 函数中,用例执行后调用函数读取数据库判断
5、rpc 这个好吧,不太懂,不过我的理解是,现在这个平台前端后端都是通过接口来交互的,所以也可以放弃前端,直接发协议的形式去启动服务器跑用例等等
6、这个就~~看情况吧
多谢楼主,最近想写 java 版的页面测试工具
问题 1、2、3 都是可以解决的,但都是需要对工具进行二次开发才能实现。
问题 4 使用 hock 可以解决问题,但是为何不把数据库相关的操作也看作接口呢?
建议将协议、接口参数、断言分离,协议可以是对 mysql、http(s)、dubbo、mq、redis、mongo 等公共组件操作的封装。
有木有根据 json-schema 自动生成测试脚本的
支持下
老兄,可不可以测 DUBBO?可以测的话,你就牛逼了
大佬 可不可以告诉下 你的测试报告页面前端是怎么做的 我也想写一个这样的页面,但是不知道怎么写啊
厉害厉害
谢谢楼主分享,学习学习
我想问一下楼主,通过接口请求进行自动化测试,覆盖率这一块有考虑接入吗?有什么思路吗?
接口模块现在没有啦?
您好,我最近准备构思接口自动化交互,现在的问题就是,一个接口可以有多个用例,一个业务有多个接口组成。 我看你是在业务里面区分,业务和 用例。现在我有两个问题
1、如果一个接口有多个用例,在用例就需要做相同接口但是参数和断言不同 这里只需要修改参数和断言就可以以了,可以看下你的交互么
2、在测试任务里面,如果我有业务和用例,怎么统计通过的数据,因为一个业务只能算一个用例,但是一个接口多个用例应该算多个用例
这个平台有什么作用 postman 不香么 多接口使用代码写不好么 看不出平台有什么价值
好多公司现在招聘测试开发就是搞这种平台 然后再找一些测试人员在这些平台上测试 对于这些测试人员 一旦使用这种平台后 基本上很少接触到代码 框架的东西 对自己的职业发展不是太好 感觉还是直接撸代码 来搞定测试比较好
有梦想的测试,会参与到平台的建设中,会在代码中提出优化意见;没有梦想的测试,要么在平台中点点点,要么在代码中按照设定好的规则写写写,本质上区别不大
现在的一些自己写的平台主要是用于提升自己的技术吧