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

风七太爷 · 2018年04月02日 · 最后由 程德波 回复于 2019年10月10日 · 18049 次阅读
本帖已被设为精华帖!

个人自研的自动化测试平台,借鉴了部分 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 上,是不是不太妥,最起码联系方式要修改一下吧,不然你修改了东西,别人来问我咋搞😰

共收到 71 条回复 时间 点赞

学习一下

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

尹全旺 回复

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

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

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

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

手动点赞~

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

loading 回复

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

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

赞一个

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

等以后有空了再改吧

赞一个,

66楼 已删除

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

李胜红 回复

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

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

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

界面比较好看,

乾行 回复

😅

59楼 已删除
li 回复

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

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

翁小杰 回复

因为你用的 py2.7?

谢谢分享,赞一个~~

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

huan 回复

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

50楼 已删除

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

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

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

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

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

请问有安装教程吗?

云飞凌风 回复

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

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

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

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

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

可以多多交流

李胜红 回复

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

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

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

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

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

mark 一下

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

不会写前端看起很棒

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

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

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

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

long 回复

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

风七太爷 回复

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

long 回复

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

仅楼主可见
风七太爷 回复

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

你们是什么公司啊

风七太爷 回复

感谢楼主提供的思路

仅楼主可见

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

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

向你学习,我也尝试下

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

14楼 已删除
13楼 已删除
liuxin 回复

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

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

L 回复

百度下,django 数据库连接

楼主为什么我执行 python3 manage.py migrate 后,数据库中的表只有这几个呢?没有 base_project 等,导致运行报错。

回复

python manage.py makemigrations base
pythom manage.py migrate

厉害了 楼主

simple 专栏文章:[精华帖] 社区历年精华帖分类归总 中提及了此贴 12月13日 14:44
simple [精彩盘点] TesterHome 社区 2018 年 度精华帖 中提及了此贴 01月07日 12:08

看到学成的效果了,榜样

参数化可以做吗

界面也是自己设计的吗

赞一个

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