因为最近想接触一下移动测试方面,所以了加入了 TesterHome 这个社区,看见了很多优秀的文章,也看见了很多讨论《自动化测试的困惑》《很多接口测试框架》《接口测试感悟》,下面我谈一下个人的见解,勿喜勿喷。
接口测试的好处
接口分析、工具选择
用例编写、开始执行
【思考】手工接口用例执行完了,那我们开始自动化测试吧
我们在回顾一下自动化测试的好处,可以帮助人做某些事情,提高效率,减少资源。
那么我们专门为了做接口自动化测试而做了以上 4 点工作。
如果我作为功能测试人员的话,我是不会想做完手工测试在去维护各种接口自动化用例和数据 (事实证明其他同事确实如此)。
框架可能好做,接口请求客户端也可能好写,用例数据的维护呢?
菜单列表工程介绍。
工具箱是一个工具集合,和市面工具没有区别,打码的是公司内部的协议就不外传了。
接口测试菜单
-接口测试主要是创建接口与项目进行绑定。
报告
以上内容仅供参考,平台的功能没有全部介绍,希望能给大家带来帮助。
亲,请问能否介绍一下这套框架是以什么为内核的?
看了看感觉一头雾水啊。。。
准备数据和数据恢复具体怎么实现呀?
#2 楼 @sanlengjingvv 这里的有点暴力执行操作被测系统数据库,SQL 由用户自己编写,SQL 和用例绑定,都是参数化的
之前有好几家公司都做了类似的平台. 你这个做的还是挺全的.
#5 楼 @seveniruby 恩,类似的还挺多的,这套系统运行了 1 年多了,目前看数据,对工作提升还是非常高的,尤其对于使用 SOA 架构和微服务架构设计的公司。
不错,做的挺全。
之前也有做一下自动化的接口测试,但由于时间精力问题没有做成平台形式。有几个问题想交流下:
#7 楼 @chenhengjie123
做成平台的出发点:1.主要是想让测试人员在项目里面做手工接口测试,数据得以保存,直接回归,也可以把研发加入项目
2.推进研发自测,目前的单次调用次数,测试人员占百分之 70,开发占百分之 30,对于开发来说不想花那么多时间去学习研究各种工具,有现成的我也就用了。
3.可是化、去代码,有些测试同学对代码没有那么深的基础,这里没那么抽象,维护两张表格他就会用了。
4.里面有些类似 DUBBO 开发的 javaRpc 服务,这种的做成了去代码的形式,为整个公司服务。
开发平台:平台是是自主开发的,人时的话看能力吧,需求明确,可能半个月不用就出来了。
第三个我没太理解是什么意思?
两个人同时请求了一个改变数据的接口会有问题吗
#7 楼 @chenhengjie123 @taki 做成平台其实是牺牲了灵活性和开放性来降低入门的门槛. 这是当年大 QA 时代的产物.
web 平台和 excel 都不是最适合接口测试的形态. 他们的表现能力较弱. 但是满足平常的需求还是可以的. 毕竟日常的一般需求还是最多的. 优秀的架构是一套底层接口测试框架, 再加上一定的上层建筑就足够了. 可以自己做 Web, 也可以让接口测试框架直接对接 redmine 或者 jira. 利用 jira 的流程自定义来实现相同的效果.
#9 楼 @sanlengjingvv 可能会有问题,概率应该不大,只要不是绝对的并发就没问题
#11 楼 @seveniruby 是的,灵活性上面肯定是牺牲了,这个是为了满足日常过多繁杂的测试任务,起到快速迭代的作用,和 redmine 或则 jira 结合的话,我们之前做过一套 UI 自动化的平台,和 remdmise 和 jira 直接打通的,直接在里面提 BUG 或者获取需求,不过效果不太好,改变一个人的工作方式还是很难,是有接口的测试框架的。把质量流程串联起来还是不错的,不过不好做······
#14 楼 @chenhengjie123 协议的维护还没有,不同的协议实现方式不同,在没有改协议的模式下,要新增的,同一个接口貌似协议是不能变更吧,随机数据检验自己解析代码是指 webservice?
我也想问下检查点是怎么做的,比如实际结果是{data:[{a:b},{a:c},{a:d}],code:0},你这里是如何对类似于这样的结果进行检查的?
可能我说的不够准确。我说的协议不是 http 协议或者别的协议,主要是接口数据结构。这个当遇到添加新功能时有可能会通过扩充字段来做。
举个例子,协议指定登录接口的数据结构如下:
{
"username": "stringType",
"password": "stringType"
}
那么客户端根据这个协议写完解析语句后,可以随机生成下面的数据来联调:
字段结构错误
{}
正常数据
{
"username": "adsafasdf",
"password": "asvxzcv"
}
字段数据类型错误
{
"username": 1123123,
"password": 15612
}
...
#18 楼 @chenhengjie123 你是说加字段哈,数据结构变了,如果新增字段了,并且这个字段影响路径或者分支,可以理解功能变更或者需求变更么,有源码可以扫描出来的
—— 来自 TesterHome 官方 安卓客户端
#21 楼 @chenhengjie123 如果你的文档标准化,是可以做到解析的,类似 wsdl,要有一定规则的,wsdl 刚出来的时候也没有解析他的方法和参数的吧,所以你定义一次文档规范,后续都应该可用
—— 来自 TesterHome 官方 安卓客户端
请问,这个框架接口之间的依赖测试怎么实现呢?
#23 楼 @songdefei 被测接口依赖外部接口?
—— 来自 TesterHome 官方 安卓客户端
有没有可能实现流程化的业务测试功能? 比如用一个接口执行产生的数据测试另一个接口?
个人感觉:手工和自动化有效结合比较好一点,一边手工测试,调试 JM 脚本,测试过程中接口出现问题,研发修复,可以不再用手工进行回归测试,直接可以进行自动化的回归了,从而实现了,手工进行测试,自动化进行回归的目的了。目前我搭建了接口自动化的框架,jenkins+jmeter+ant ,通过 tomcat 虚拟目录,进行测试报告的发布。大家看一下,我这个方案是否可行
#28 楼 @allanwendy 这种方案是可行的,主要体现一种思想,用什么工具 或者自己开发 都可以的。你这种方案能做成一站式服务的话最好,用户不用关注怎么上传 jm 脚本 什么之类的。关注两个点:1.手工自动化结合,2.简单。
看到有这种工具开放出来,感觉蛮欣慰
#33 楼 @kuangxiaoying 看业务吧,查询类的不需要
#35 楼 @kuangxiaoying 这里面也没有依赖关系吧,做任何测试都离不开数据,除非你不做测试,什么按照一定规律生成数据之类的,各种算法生成,业务改了那么你的自动构建的代码是不是也要修改了
顶一个,学习
这工具开源吗?
#38 楼 @mengfeiyang 没开源
我想问一下,你们的数据库 的 测试数据准备和销毁是怎么做的 ,让测试人员写 sql 还是 ?
请问执行之前的测试准备,包括上面朋友说的数据的准备和还原,脏数据的处理,测试环境的准备,比如涉及到数据库,某些 service 的启动,config 文件的修改,接口参数的关联,并发执行的数据隔离,字符串加解密等等楼主有没有不错的经验?
这个项目考虑开源不?挺全面挺好用的!
开源吧
@lisha_2008 @TestingNG 后面会有替代品开源