zoukankan      html  css  js  c++  java
  • 自动化测试框架(一)

    初到新公司,自己琢磨着写一套Android手机的自动化测试框架,于是在网上走访各博客,论坛。参考了许多牛人的文章,尝试搭建了一个自动化测试框架。

    整个框架使用的Python 语言。

    框架简介:此框架是对 Android Uiautomator 的Python封装,支持Android4.1及以上版本。 需要安装Android SDK,设置ANDROID_HOME环境变量以及 adb环境。

    框架原理:通过建立json-RPC服务,实现PC(client端)到手机(RPC server端)的远程控制

    框架优点:脚本编写简单。相比于原生的uiautomator,需要编写Java代码,build文件,编译jar包,push到手机端执行

    实现功能 1)UI操作与按键事件;   2)执行结果检测(文本检测,控件检测,图片对比);   3)用例批量执行 ;  4)生成测试报告  ; 5)抓取手机log

    框架结构:

    脚本代码:

    #-*- coding:utf-8 -*-
    '''
    用例标题:检查联系人界面显示
    测试步骤:
    1.无联系人时检查界面显示;
    预期结果:
    1.显示新建联系人,导入联系人,从云端导入,其他手机导入四个选项;
    '''
    from aw import * 
    
    ######################################             
    TAG=__file__.split("\")[-1]         
    TAG = TAG.split('.')[0]              
    ######################################
    class TestScript(unittest.TestCase):
        def setUp(self):
            Common(DUT).goHome()
        def test_step(self):
            for i in range(LOOP.loop1):
                Common(DUT).clickByText("联系人",screeScroll=True,direction="left_right")
                Common(DUT).wait(1)
            
                result = Checkpoint(DUT).checkIfExist("检测点1",text="扫名片") 
                and Checkpoint(DUT).checkIfExist("检测点2",text="新建联系人")
                and Checkpoint(DUT).checkIfExist("检测点3",text="导入联系人") 
                and Checkpoint(DUT).checkIfExist("检测点4",text="扫二维码")
                self.assertEqual(result, True)
                
        def tearDown(self):
            Common(DUT).goBack(1)
            Common(DUT).goHome()
            Common(DUT).clearRecentApp()
    
    if __name__ == "__main__":
        unittest.main()

    测试报告:

    报告生成 参考 HTMLTestRunner库, http://www.cnblogs.com/Roger1227/p/3327311.html

    有感兴趣的可以留言探讨。

  • 相关阅读:
    MySQL语句进行分组后的含有字段拼接方法
    架构基础
    自动化测试框架比较
    分布式系统中的概念--第一篇 一致性协议、一致性模型、拜占庭问题、租约
    如果两个对象具有相同的哈希码,但是不相等的,它们可以在HashMap中同时存在吗?
    分布式系统常用思想和技术总结(转)
    常用的Hash算法
    Sonar + Jacoco,强悍的UT, IT 双覆盖率统计(转)
    AWK处理日志入门(转)
    内存管理
  • 原文地址:https://www.cnblogs.com/gaigaige/p/6427929.html
Copyright © 2011-2022 走看看