#34 楼 @xiaoli 可以考虑 java 的反射,通过字符串解析方法 method.getName() == yourMethod,比如填入 Assert.assertEquals(${实际值}, 期望值)然后通过占位符的方式在代码里做替换(这块的处理逻辑会很复杂),不过我做的是接口测试,UI 的话我还真没啥经验~
#31 楼 @xiaoli 预期值也可以考虑写在 excel 中哇,这样就完全脱离硬编码了~
#26 楼 @xiaoli 先赞个,哈哈~你这个有用到 maven,gradle 或者 testng 么,自动化测试跑之前的的数据清理/制造&落地数据的校验请问你是如何实现的呢?
#26 楼 @ycwdaaaa 你这篇文章给了我很大的启发,尤其是最后的落地数据校验,我仿照你那个 xml 写了个 json 版的,但是发现数据库字段读取出来 (Java & mysql),比如 Date 类型,给我自动带了个.0 出来,就像 2011-09-09 09:09:30.0 这个样子,不知你有没有遇到过类似的问题,或者需要自己实现一个 convert 支持各种数据库字段类型的转换?
#25 楼 @frankliu 隐约看到自动化测试平台的影子哇~~
#15 楼 @success 所以不要太期待别人开源什么的,别人题典一下设计理念思路已是恩赐 严重赞同你这句~有时候真是思路与灵感被别的文章或别人的一句话给点透了,然后埋头码代码,就出东西了~
#47 楼 @quqing 有道理,业务测试一般会看数据落地的正确性和 service 的 tomcat 日志,而且数据的正确性是企业的核心价值也是最需我们测试人员去细心校验的
#45 楼 @taflo 哈哈,有点像 docker 的意思了,只不过我们这个很 low,完全是手工用 navicat 去导
#19 楼 @ycwdaaaa 哈哈,关键我就差在这些设计思想与形式上,有些东西自己有可能想半天或者实验半天都没有很好的效果(但是绝对不会自己不思考),看看其他人的文章,说不定就通了,而且我比较初级,先从模仿开始喽~
#43 楼 @taflo 哦哦,这个倒不是,我和你理解的不一样,我理解比较浅薄(就是单纯的数据库占用空间大,哈哈),因为之前我做 UI 自动化时,使用 mybatis 查询我们符合条件的贷款人数据,那个 SQL 比较复杂,查询非常慢,之后在一个管理页面通过翻页去找查出来的这个人..所以之后就做了个基础库,只提供自动化必要的数据,然后通过接口制造一些数据,最后就是管理页面仅有一条符合条件的数据,因为数据制造对于自动化来说是一大块~
#17 楼 @ycwdaaaa 哈哈,读了你的文章真是对我启发很大,非常感谢你耐心的回复~我也准备自己实现下试试~~期待你之后的系列文章~
#38 楼 @taflo 呃,我没说清楚哈,是这样,我们之前公司数据库数据量很大,之后做了基础库,目的就是减小测试环境的数据库的数据量
#12 楼 @ycwdaaaa 还有个问题,你最后那个 check db 的 xml,是针对于本次测试所有需要校验的字段写成一个大的 xml,里面包含了很多子节点,然后拼接 select orderid,xxx, xxx,xxx from t_app_order_paidan where orderid=12332112345670 执行 sql 后,再根据标签中的值做验证么?支持那种可随意配置需要验证 db 和不需要验证 db 么(比如我去指定目录去遍历解析这个 xml,没找到就不做验证)?
#36 楼 @taflo 备份一份数据库实例?要是数据库数据量很大咋办?
#13 楼 @success 哈哈,领导要是喜欢看不停干活不停敲代码的,那我就直接每个接口写个 testmethod,不做啥数据驱动的框架之类的~
#12 楼 @ycwdaaaa 我之前写过一个特别简单的小程序,RPC 的,我这边需要拿到研发的接口代码啥的,然后都注册到 zk 上,之后调用,你那个我看着很复杂(高大上),相当于你定义了文件格式,然后动态地去生成这些接口的 java 文件作为 client 端么
#10 楼 @success 呃,我有个疑惑,dubbo 接口自动化只能通过读取 xml 文件,java 反射的方式去动态生成测试接口了么?
#25 楼 @quqing 看来对于接口测试的结果校验以及相关证据的保留是非常重要的,又得保证自动化的持续集成(数据初始化->运行测试->数据处理->清理测试环境)又得保证保留相关的证据,我是感觉很头疼哇,我目前还停留在考虑接口测试校验返回值后的数据库层面的验证,不过想做得简单点,@ycwdaaaa他的框架给了我启发,但是我又不想加入类 ORM 的这种框架,而且像把框架做得耦合度低一些,类可插拔式的...
#10 楼 @ycwdaaaa 哈哈,确实,之前其实我不是很理解你为啥说 [不要依赖产品的接口造数据,尤其是共享数据],看了你的回复发现就是避免运行时依靠研发开发的业务接口去制造数据 [产品接口 bug 的机率倒是挺大的],这点我之前确实没考虑过,感觉这样一来,写好的类 excel 文件就相当于一组测试数据 template suite,之后进行接口回归时只需要重复的去跑这套模板就好了~