接口测试 个人项目:接口自动化测试平台

Eden · 2020年06月19日 · 最后由 Eden 回复于 2020年07月29日 · 4094 次阅读

联系方式:Eden445129997@163.com
有什么疑问都可以发送邮件给我。

django 后端 github:https://github.com/Eden445129997/test-platform-django.git

java 后端 github:
https://github.com/Eden445129997/test-platform-springboot.git
刚搭完基础架构,还有一些模版增删改查:功能还在从 django 迁移中

前端 github:https://github.com/Eden445129997/api-platform-client.git

语雀原地址:https://www.yuque.com/docs/share/36162351-b77c-4fb1-8c10-ad9ee63e9d91?#《测试平台》

前端的基础页面还在开发中,肯定不能用,但是可以先给大家看一下效果

目的:
自动化的主要目的是进行回归测试,减少手工回归,而不是为了发现 bug 做的自动化

测试的工作内容:
功能测试:为了保证功能而做功能测试,所以做功能测试从层次划分来看分为:系统、集成、单元

性能测试:
1、解决系统的稳定性
2、解决系统的风险无法把控问题(存在并发的时候很可能出现一些细小程序的逻辑错误等问题,被测系统在确定资源的情况下可承载的并发用户,系统架构缺陷隐患对业务的风险)

自动化测试:
1、解决手工大量回归用例的时间(尽早提前发现 bug、缩短迭代流程)
2、给开发赋能,驱动开发保证质量

原因:
我们公司的当务之急就是缺人缺时间,所以我选择了做自动化测试
在项目长期规划和短期规划中,必须得这么做,否则当业务增大,测试人员将疲于增大的需求

选择:
开发一段代码,假如用社会上已有的那种 requests+unittest+selenium 等方式,则会出现一两个测试人员独立开发,高额的维护成本,测试人员的招聘难度同样也会增加。
所以我选择使用 web 开发的方式,提供页面,多人协作,推动开发来共同投入到质量的保证工作中。
在自动化测试的范围中 ui、接口、方法单元,我选择做接口层的自动化,这是因为接口层的自动化是投入与产出中收益高的那个,投入需要投入用例的开发成本和用例维护成本(存在很多用例),当 ui 变动将会使得测试工作白费,接口的变动是比较少的,单元不选择的原因是投入的时间成本和人力成本更高。

结果:
因为人员问题,目前只能我个人独立开发一个 web 项目,并且招聘也有难度(更倾向于能够开发的测试人员),因为测试更懂测试。更加明白测试所需要的真实需求。

技术栈选择:

后端:
python
django
django-restframework
django-cors-headers
django-redis(后期加上)
requests
celery(后期加上)
PyJWT(后期加上)
PyMySQL
java
spring-boot
mybatis-plus
lombok
smart-doc

python 没有用 unittest 和 pytest 这些做底层,底层是自己手写的框架,抄了一些 unittest 的源码改造过来的,因为主要是 unittest 和 pytest 不支持我期望的自动化方式,这两个框架都是持久化测试脚本,或者说类做自动化的,我所期望的是数据都写在数据库中,而不是脚本做,所以最后决定自己手写测试框架的轮子。
java 底层还在考虑用什么写

前端:
vue
ant-design-vue
axios
vue-router
vuex

备注:因为独立开发的原因在语言的选择上,我使用的 python,为了不让自己投入到开发难度的债务中。
最近又担心多人使用的时候并发的问题,有考虑打算转使用 go 或者 java 做平台开发。

功能点:
网络请求、参数化、全局请求头、mock、校验点、测试报告

开发数据库表设计:

类设计

代码总体现的业务的流程

参数化表达式:
表达式:$..&0#
$..:jsonpath 语法(参数化仅仅支持 response 为 json 数据类型)
&0#:中间的数字代表对应的用例节点(用例之间存在关联关系,这个数字代表对应需要获取数据的用例节点)

备注:jsonpath 语法,获取对应节点的响应数据,然后替换表达式

校验点表达式:
表达式:$..

备注:jsonpath 语法,确定要校验的响应数据(同样仅仅支持 json 数据类型)

测试效果:

a

最佳回复
Thirty-Thirty 回复

说的是以前写的 web 平台,贴子是客户端的。

共收到 12 条回复 时间 点赞

测试平台劝退... 滑稽.jpg

顶一下 期待

Eden #3 · 2020年06月21日 Author

我会尽量更新,弄好后会出个文档出来

1、提高个人能力
2、工作中有实际价值
个人认为,只要能达到上面任一个效果,就可以搞😄

如果为了提供自己能力,可以做,提升自己。

如果是为了落地到项目,团队,那帮助非常有限,非常多复杂的场景完全覆盖不了。

手动滑稽.jpg
做自动化测试还是写代码爽,一时写一时爽,一直写一直爽。 自由,自在。

7楼 已删除
xinxi 回复

什么思路

目前发现直接给予控制器写单测也挺好,不需要考虑用户状态问题

我也写过平台,但后来放弃了,总感觉得不偿失。

tianfuzhiguo 回复

你发的那个帖子就是讲你那个平台的吗?

Thirty-Thirty 回复

说的是以前写的 web 平台,贴子是客户端的。

tianfuzhiguo 回复

测试开发,总得至少有完整写出一个项目才行。写都不写就放弃了,自己怎么得到提升。

需要 登录 後方可回應,如果你還沒有帳號按這裡 注册