AutoTest简介

前言(仅看介绍本身的可以略过)

       在离职后的一段时间里,个人总结了过去几年工作的心得,结合以往的工作经验。重新思考并重构了前些年做的一些东西(主要是测试相关),产生了设计AutoTest这样的一个测试工具/系统的想法,当然其实这样的想法一直都有自己也曾试图慢慢去完善及实现,不过工作的原因一直没有太大进展。而离职后自己并没有忙于找工作,也使得自己有时间去实现自己的想法。

       另外有篇关于AutoTest的系统设计的简单介绍 【一个基于.NET平台的自动化/压力测试系统设计简述(可独立运行,提供源码)

AutoTest简介

  • AutoTest被设计为一个基于协议的支持分布式部署测试系统/工具。

AutoTest支持自定义协议的定制,除支持基础协议外,可根据公司或项目的特殊要求定制所需要的通信协议(定制过程仅需要修改AutoTest执行库文件,定制可参见【如何添加一种新Case协议】)

  • AutoTest以Runner为单个执行体,runner的行为由case文件(脚本)文件决定,工具本身可以加载任意数目runner(可以选择加载不同case文件),并且支持runner的并行执行,AutoTest同时支持分布式部署,您可以将case文件即测试任务部署到远程主机,AutoTest可以连接这些远程主机,并控制这些远程主机上runner以获得更高性能。
  • AutoTest的case文件(脚本)是一种基于xml并且完全符合xml规范的简单描述文件,该文件描述case的执行方式,如执行需要的数据,断言的处理,遇到错误的行为,及运行次数,延时等等您可能需要限定的内容。case文件包含一个执行器描述(提供您协议可能需要的基础数据,比如对于串口的串口号,波特率等,对于telnet的ip,登陆名密码等···),还有任意数量的project节点,project中包含单个case体或循环体

以上为主runner运行时界面,主runner中每个case执行时都会显示独立的执行过程,并会在界面上有明显反馈动作,执行完成后,您可以选择输出测试报告,测试报告以html的形式呈现,报告中会包含执行细节。

 上图为多runner同时执行的界面,这里可以构建或虚拟许多不同的用户行为对测试对象进行测试。您可以指定任意runner加载任意的case文件,然后选择任意的runner进行执行或者一起执行

上图为AutoTest连接远程主机进行测试,要连接远程主机您需要先在远程主机上运行AutoTest的分布式部署程序(上图中的3台远程测试主机实际上运行在一台主机上)

使用分布式测试时请先在防火墙中允许您指定的服务端口(或关闭防火墙)

  • 关于Case文件

当前case文件支持简单的参数化,您可以预定义一些您需要的需要且可能随时改变的数据设置为可参数化的数据,这些数据可以在case文件中如变量一样被使用,也可以在运行中被运行结果所替代或新增。(跟其类似的还支持简单的静态数据如随机数,系统时间等等)

支持的断言包括【default/is/not/like/endwith/startwith/contain/uncontain】

断言支持多种动作,如达/未达到条件时,跳转(goto)到指定case,或者失败后进行重试,或进行语音提示报警

对于多条cace组成的业务可以选择性进行循环(循环中支持任意次的循环嵌套)

更多关于Case文件的内容见【CASE 文件 范例

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏达观数据

达观数据应对大规模消息数据的处理经验

达观数据是为企业提供大数据处理、个性化推荐系统服务的知名公司,在应对海量数据处理时,积累了大量实战经验。其中达观数据在面对大量的数据交互和消息处理时,使用了称为...

3748
来自专栏unlike

用paxos实现多副本日志系统--multi paxos部分

上篇 basic paxos : https://cloud.tencent.com/developer/article/1147420

3658
来自专栏腾讯DevOps

SVN切换到Git方法及坑点

SVN和Git同样都是在特定时代下比较优秀的版本控制系统,但是随着时代的发展,SVN越来越不能满足多人开发的需求,尤其是在多种多样,天马星空的业务场景面前,SV...

3255
来自专栏架构师之路

90行代码,搞定日志监控框架

上一篇《100行代码,搞定http监控框架》介绍了通用+可扩展的http监控平台的架构: 监控平台层:调度监控项,通过后台管理监控项 信息管理层:通过服务和后台...

8757
来自专栏企鹅号快讯

缓存在高并发场景下的常见问题

丁浪,阿里影业架构师,社区活跃人士。有分布式事务,分布式缓存方面的总结文章获得好评。 本文获作者授权发布。 缓存一致性问题 当数据时效性要求很高时,需要保证缓存...

2018
来自专栏代码GG之家

只需一个命令,快速定位android的启动耗时

有兴趣合作,帮忙制作公众号的一些宣传图册的伙伴,可以加我微信,商谈具体事宜。 回顾: Android 启动过程框架 这节我们讲一个命令,用来定位android...

2026
来自专栏Grace development

Laravel5.4 队列简单配置与使用

举几个生活中例子: * iphone手机新款发布,三里屯iphone进的新货。大家要排队买,不能说一大堆人一起冲进去,那么这店就完了。 * 你有一大堆女朋友...

2691
来自专栏java达人

TortoiseSVN中Branching和Merging实践

使用svn几年了,一直对分支和合并敬而远之,一来是因为分支的管理不该我操心,二来即使涉及到分支的管理,也不敢贸然使用合并功能,生怕合并出了问题对团队造成不良影响...

2135
来自专栏Android-JessYan

MVPArms官方首发一键生成组件化,体验纯傻瓜式组件化开发

原文地址: https://www.jianshu.com/p/2452ea776a45

2263
来自专栏依乐祝

.NET Core实战项目之CMS 第四章 入门篇-Git的快速入门及实战演练

上篇文章我带着大家通过分析了一遍ASP.NET Core的源码了解了它的启动过程,然后又带着大家熟悉了一遍配置文件的加载方式,最后引出了依赖注入以及控制反转的概...

741

扫码关注云+社区

领取腾讯云代金券