1、基于视图和视觉技术的业务流程自动化测试框架,中国民航信息集团 周海旭 ,大纲,过去:面向操作的自动化测试,面临的问题,系统业务流程日益复杂,针对业务流程的测试需求日益增加 面向操作的自动化测试难以得到业务专家的有效支持,面向业务流程的自动化测试,针对业务流程的测试已经成为一个热点研究课题,面向业务流程的自动化测试(续),基本思路:对脚本进行封装从而将面向操作的自动化测试抽象为面向业务流程的自动化测试,大纲,什么是自动化测试框架?,一种实现自动化测试的完整解决方案 驱动和校验能力 脚本编写规则 用例组织方法 生成测试报告和日志 适配组织结构和工作过程 ,自动化测试框架的发展,三层结构对应的角色分
2、工,大纲,来自工业领域的启发,计算机编程语言的未来?,基于图形视图的业务层,基于图形视图的业务层(续),基于图形视图的业务层(续),技术要点,图形视图场景构建与编辑:综合运用多种图像编程技术,实现测试场景中各种图形组件的操作、控制、编辑、存储,技术要点(续),业务层和脚本层的接驳:执行测试时,必须将业务层的图形视图逻辑与脚本层进行整合,生成可直接运行的底层脚本(类似于高级语言转换为机器语言的编译过程)。,技术要点(续),示例:循环嵌套逻辑的转换算法,定理1:节点对应的脚本缩进量等于该节点的循环体队列与其前一个节点的循环体队列的交集深度定理2:当节点的循环体队列深度大于其缩进量时,应加入FOR循
3、环头,大纲,脚本层面临的困境,脚本层的核心任务:识别并操作对象 传统的对象识别方法:解析控件的属性值 面临的困境 跨应用对象识别 非标准对象识别 可读性、可维护性差,基于计算机视觉技术的新思路,引用的成果:MIT 研究团队发布的图形化编程引擎 Sikuli 基本原理:通过当前屏幕的实时图像检索获取操作对象,模拟用户行为,匹配屏幕区域以校验真实的视觉显示结果。,http:/sikuli.org/,应用示例,对Sikuli引擎的扩展,testPassed testFailed testInfo stop printLog conMYSQL,对Sikuli引擎的扩展(续),API扩展方式 引入第三方Python模块 pymysql Package:操作MYSQL数据库 pyh Package:生成测试报告脚本重构 Stop方法:将脚本放入try块中,通过主动抛出异常停止脚本的运行。,谢谢大家!,