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

Eden · June 19, 2020 · Last by 花开 replied at June 23, 2020 · 2269 hits

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

后端github:https://github.com/Eden445129997/api-platform-django.git
前端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
没有用unittest和pytest这些做底层,底层是自己手写的框架,抄了一些unittest的源码改造过来的,因为主要是unittest和pytest不支持我期望的自动化方式,这两个框架都是持久化测试脚本,或者说类做自动化的,我所期望的是数据都写在数据库中,而不是脚本做,所以最后决定自己手写测试框架的轮子。

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

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

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

开发数据库表设计:

类设计

代码总体现的业务的流程

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

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

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

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

测试效果:

a

共收到 8 条回复 时间 点赞

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

顶一下 期待

Eden #3 · June 21, 2020 作者

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

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

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

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

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

7Floor has been deleted
xinxi 回复

什么思路

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

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up