自动化工具 自研的接口自动化测试平台

wsyu · 2018年04月02日 · 最后由 wsyu 回复于 2018年08月13日 · 15892 次阅读
本帖已被设为精华帖!

个人自研的自动化测试平台,借鉴了部分HttpRunner的思想和部分代码,主要实现了项目管理、签名方式管理、接口管理、用例管理和测试计划的制定和运行等主要功能,其它的编辑修改都没做,现在只相当于完成了一个Demo吧。
环境:
Python 3.6.3
Django 2.0.1
Pymysql 0.8.0
Requests 2.18.4

主界面

系统设置

项目管理

测试环境

接口管理

添加接口


用例管理

添加用例

一个用例可以包含多个接口

选择接口后,相应的接口参数会显示在下面,只需要添加相对应的值就行了

多接口之间的参数传递,以美元符号$来定义一个变量,用例执行的时候会在用例上下文中(本接口和前文中已经添加的接口)获取相对应的值,如果一个接口某个参数的值需要的从其它接口的返回值中获取,则需要上相应的接口中提取这个字段。

测试计划

制定计划、执行、查看报告

添加计划

选择项目后,可以获取该项目下所有用例
制定完成后,可以选择立即执行或定时执行(这块暂时没做),执行完成后,可以查看测试报告

查看报告

github地址:https://github.com/wsyu/EasyTest

由于之前在公司已经用tornado实现过一次,除了上面部分,还包括定时任务,用户管理,权限管理,数据库监控,不方便放出来(有少部分别人的代码),这次用django又实现一次, 所以代码和前端都比较随意😂 😜

被山寨了

在github上看到跟我一样的项目了,什么都一样,连里面留的QQ号都是一样的,不开森😢 ,感觉劳动果实被窃取了。其实我是很欢迎也很喜欢跟大家一起讨论交流问题,也不介意别人拿我的东西去使用或者二次开发,但是一个字都不改,就放到github上,是不是不太妥,最起码联系方式要修改一下吧,不然你修改了东西,别人来问我咋搞😰

共收到 64 条回复 时间 点赞

学习一下

请问下,接口管理是怎么实现hrrprunner的api功能的?定时任务这块是用的celery么?

wsyu #3 · 2018年04月03日 作者
yinquanwang 回复

你说的api功能是指接口分层吗?我只参考了HttpRunner中的接口参数怎么传递的部分,因为HttpRunner最终都是形成了测试用例文件,我做是用例都是从数据库里面取值后,直接组装的,然后用requests库执行的,实现了用数据驱动吧,没有用unittest的框架,所以后面做的结果验证比较鸡肋。定时任务这块,之前用Tornado,是用的APScheduler, django这块还没做😂

seveniruby 将本帖设为了精华贴 04月03日 23:37

不错了,再优化下报告,就更完美了

wsyu #6 · 2018年04月08日 作者
meilisong 回复

谢谢夸讲,这段时间准备换工作,没时间优化,等工作稳定了,再重构一遍吧

手动点赞~

一直想这样做一个,终于看到有人在做了

wsyu #9 · 2018年04月09日 作者
loading 回复

还有好多要改的地方,没有时间改😂

缺少很关键的 sql初始化脚本

赞一个

界面还行 就是测试报告太丑。。。

wsyu #13 · 2018年04月10日 作者
dancingcat_ 回复

等以后有空了再改吧

赞一个,

15楼 已删除

想问下,你是如何实现上一接口的出参作为下一接口的入参呢?

wsyu #17 · 2018年04月18日 作者
lishenghong 回复

在上一个接口中,添加提取参数,然后在下一个接口中定义变量,比如要在上一个接口中获取token,直接在提取参数中添加token,然后后面需要使用的时候,直接使用$token

想问下,项目怎么部署,要注意的点有哪些???多谢!!!

楼主,想问下怎么sql初始化

界面比较好看,

wsyu #21 · 2018年04月27日 作者
iqianxing 回复

😅

22楼 已删除
shirleyxy 回复

一般似乎都是 python manage.py migrate 这样初始化数据库的吧 0.0

楼主 我运行python manage.py runserver启动服务,为什么会提示File "manage.py", line 14
) from exc
^
SyntaxError: invalid syntax

wmj694219736 回复

因为你用的py2.7?

谢谢分享,赞一个~~

主界面不错了,再把报告的页面弄好看点,就更好了
验证这块楼主是怎样弄的?

wsyu #29 · 2018年05月08日 作者
huanzhijin 回复

现在验证做的比较简单,只判断了字段值是否相等

31楼 已删除

楼主自己觉得这个所谓的平台有剽窃的必要么?还有一个问题,运行几千条用例你考虑过么?

wsyu #33 · 2018年05月11日 作者
wy1221521 回复

本来把这个东西放出来,是抱着开放的态度,一个是自己一段工作的成果,二来是希望可能会给别人一些思路,有人看,有人关注已经很欣慰了。说剽窃严重了,但是至少最起码的招呼应该有一个吧,还有你不能直接拷过去,联系方式都不改一下,如果你修改了东西,别人来问我???至于运行几千条用例,正是因为有这方面的考虑,所以没有考虑生成用例文件的方式,后面有时间的话可能会用异步请求吧。

大佬大佬,看看源码学习学习

然后呢,我们还是不会啊?你什么都没给我们

可以关注下AutoLine开源平台,支持RF所有的关键字https://testerhome.com/topics/13505

请问有安装教程吗?

wsyu #38 · 2018年05月22日 作者
wangcityboy 回复

可以百度下,django项目如何部署安装

我还是喜欢写自动化脚本,这种界面的很费时费力,让有coding基础的人来吧,入门很简单的,或者用现成的soupui或者postman都行

我最近也在开发接口自动化测试平台,我认为您还需要完善的地方就是新增一个前置条件,
比方说短信验证接口:sendcode获取验证码,authcode验证验证码,我们需要向接口传一个正确的code值,authcode接口才会返回预期值。
前置条件就是: 去redis也好mysql也好,取出code,然后请求authcode的时候带上code。。

等等,还有许多拥有逻辑的接口都需要前置条件

wsyu #41 · 2018年06月08日 作者
Mon 回复

短信那块暂时没想到好的办法完善,但是其它有接口逻辑的,应该能满足吧,可以通过取上一下接口的返回值,来赋值给下一个接口

可以多多交流

lishenghong 回复

自定义规则,根据规则解析,造个轮子!

我问下,如果进行对返回值得判断呢,也就是检查点得设置,如何设置

wsyu #45 · 2018年06月11日 作者
hxhufo008 回复

设计用例的时候,有检查点的设置,目前做的比较简单,只能判断要检查的字段和预期值是否相等,还只能是字符串型😂 ,后期再改吧,太忙了

厉害,我也想用django搞一个,学习一下

这种关键字驱动并没有很方便,还是期待下httprunner的管理系统

mark一下

感谢好心人分享~已下载~可用~

不会写前端看起很棒

不太实用,接口测试的化最好和公司API平台结合起来

先不说功能咋样好不好看,就凭你这份努力都值得我们学习,谢谢。

在做,在学,在进步就是该肯定的。反手就是一个赞

@wsyu 想问一下作者,测试环境管理这块咋做的,切换环境,host这块

wsyu #55 · 2018年07月04日 作者
linaipeng 回复

执行用例和计划的时候,直接选相应的环境就可以了

wsyu 回复

怎么配置一个环境的host并且生效,能给个思路么,作者,我现在一点思路都没有,谢谢了

wsyu #57 · 2018年07月05日 作者
linaipeng 回复

这块我现在也没好的思路,之前是用jenkins 和 docker 做了一个自动部署的,至于怎么集成进来,现在也没好的思路

仅楼主可见
wsyu 回复

楼主在哪,来我公司吧😄,我最近在考虑一个问题,想做一个类似与这样的平台,先只实现业务流的接口测试,感觉有难度,比如一个用例可能需要十多步操作,一个测试集可能多个用例,变量的传递这块还没弄清楚

wsyu #60 · 2018年07月06日 作者
meilisong 回复

你们是什么公司啊

wsyu 回复

感谢楼主提供的思路

仅楼主可见
wsyu #63 · 2018年07月11日 作者
z3pc19901003 回复

用django重构的,跟之前的没多大关系

oh_test 接口自动化平台二次开发 中提及了此贴 07月12日 11:45

向你学习,我也尝试下

大神,有没有数据库的初始化脚本呢,表结构什么的也行呀

67楼 已删除
68楼 已删除
wsyu #69 · 2018年07月27日 作者
liuxin19940519 回复

百度下,django怎么连接数据库,怎么建表

楼主,你好 这个打开的时候需要进行初始化数据库么?我这边直接打开提示:pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' ([WinError 10061] 由于目标计算机积极拒绝,无法连接。)")

wsyu #71 · 2018年08月13日 作者
robot_ 回复

百度下,django 数据库连接

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