第一次来到京东北京总部,我忍不住拍了一张照片,楼好大,好高,很有气势。
非常高兴能够有机会参加京东技术节分享,在开幕会上ZHANGCHEN总亲手颁发京东技术节特邀讲师和有力的握手,让我感觉到了研发人的力量,为我第二天的分享加油鼓劲。
我原计划测试会场第二场进行分享,由于前面同学临时有事,调整为测试会场第一场,开了测试会场的头一枪,很激动,在分享的过程中,现场测试伙伴十分热情,交流了很多问题,让我感受到了大家对技术的热爱。
实际分享的时候有几个经验要分享一下。
1.正式分享时候PPT比我们正常的时候要延迟,要掌握翻页PPT的节奏。
2.正式分享时候PPT是有专门人员投放的,我们是不能通过PPT的演讲视图看提示的,所以一定要对PPT了解的很透彻,才不会出现纰漏和卡顿。
说了这么多还是上测试分享的内容正题吧。
分享的目的,不是为了推广工具,是为了让测试的思想能够得到碰撞和升华,让今后测试人员能幸福一点,快乐一点,只有整体的提升,才是效率提升的关键。
为什么要自动化测试?
通过上图对比,可以很直观的看出,工具的力量是多么的强大,合理的使用工具,可以使工作事半功倍,当然也作用于测试,针对不同的场景进行合理的自动化测试设计,可以节省人力成本,快速回归的功能,自动化测试脚本是脚本开发人员固定的验证程序,优点十分明显,不会累,疲倦,疏忽,缺点也很明显,无法像人一样探索性测试,思维固定。
尽然我们说了这么多,自动化测试强大需要合理使用,才能够发挥价值,所以开展自动化测试前,就需要对不同的项目进行具体分析。
自动化测试策略与分析
选择周期长的项目进行开展自动化测试,周期短的项目不易开展自动化测试,因为投入远大于长出。
当然周期长的项目也需要具体问题具体分析,需要脚本达到一个平衡点,避免出现项目发现变更,在人力资源有限的情况下,优先支持功能测试,导致大量的脚本维护,最后废弃的情况。
B2B订单中心自动化测试最佳实践
当前B2B订单中心数据一览,产生的价值是十分的明显的,每测试一轮节省1.7个人天。
具体的界面如图所示
1.项目组相关成员可以在页面第一时间实时的了解到,项目的质量情况,并且可以提取相关订单数据,进行下游测试,大大的提高了自动化脚本的利用率。
2.让脚本不在默默无闻低调的,而是可视可见的。
当前B2B订单中心的系统应用已经实现了自动化编译打包-自动化部署-自动化测试,大大节省了重复部署测试环境的时间。
对代码进行静态扫描,发现静态语法问题,到自动化运行脚本检查业务逻辑问题。
三层设计,最上层是UI展示,展示用例,中间层为脚本层,断言与验证逻辑,使用TestNg的2个高级用法,DataProvider用于数据驱动,实现1个脚本对应多条测试数据的应用,利用后续测试用例维护。
TestListenerAdapter用于监听测试脚本的成功、失败、跳过的情况,可以对测试结果扩展,当前是回写对应的结果到数据库。
HttpClient用于测试HTTP请求,JSF用于测试JSF,MongoDB用于存储测试数据。
数据驱动测试脚本执行的三种场景,1.Jenkins上持续集成2.本地脚本调试3.前台UI脚本执行。
1.使用Mongodb的优点是字段不需要创建,适合测试数据多样的场景需求
2.Robomongo客户端,节省了开发前台功能的时间,可以快速的进行数据编辑,并且操作友好。
3.当数据字段发送变化时,不需要一条一条修改,只需要批量查询出来,进行替换即可。
最后对自动化测试做一个总结,让测试脚本不在低调,让测试脚本价值最大化,让项目的研发认可脚本的价值,让测试脚本透明化可视化,服务整个项目组和被依赖的下游团队。
自动化测试小工具介绍
测试需求:线上一个域名对应多个IP,如果IP是个或者更多,如果验证每个IP的应用是否启动成功,对应测试人员是痛苦的。
研发人员:可以通过自动化部署日志和UMP监控进行判断应用是否存活.
工具需求:如何能够在时间有限,并且不需要开发前台UI页面,可以使用开源工具提供快速执行的入口,并且基础工具可以重复使用。
工具的执行结果如何所示,用户使用工具后,可以直接观察每个IP一一对应的图片,可以很直观的看到哪个IP的应用是否启动失败。
不过度设计,满足测试需求即可,当前是分三层设计
1. UI层使用的Jenkins,可以满足调用Shell脚本,远程执行,参数化构建,发送报告等.
2. JAR包里面封装基础的功能,有点类似研发的模块化开发。
3. 使用shell脚本对Jar包的命令进行组装,不同的排列组合,可以快速形成一个新的工具.
通过下面图片,可以快速的了解到工具是如何进行配置和执行的.
最后的小工具,是我在日常测试的时候,遇到的一个问题,京东订单中有一个字段叫SendPay,个字符,每位对应的不同的数字,有不同的含义,例如我需要看位1,没有工具的时候,我需要一个一个数到位,是否是1,这是一个很痛苦的事情,所以这工具就这样产生了,用户只需要把对应的个字符放到输入框里,就可以很直观的,看到每一位是多少。
最后,分享这个工具的目的不是为了推广这个工具,是为了让小伙伴们在平时遇到让你痛苦的事情,也意味着也让其他人也痛苦,让我们及时发现问题,并利用技术去解决,提供整体效率。
本期作者:刘多嘉