unittest+airtest+beautiulreport三者结合弄一份漂亮的测试报告

网易开源的airtest库,本身上是一个python第三方库,而他的airtestIDE则是一个强大的集成工具。

在笔者的另一个角度看来,随着airtest出来的完善的使用文档,对我们这种小白来说更有意义。

下面是效果图

 

参考作者的链接:

https://www.jianshu.com/p/e62d3640c07c

 

先介绍三者:

1、airtest是最近流行的游戏UI测试框架,通过图像识别进行点击,断言图片是否存在等达到自动化的目的。兼容Ios,Android平台。

2、unittest则是python的单元测试框架,类似于java的junit。

3、beautifulreport则是专门为unitest搞的html测试报告了。

准备工作:

1、克隆beautifulreport项目,github这里很详细地写了

https://github.com/TesterlifeRaymond/BeautifulReport

2、准备python环境,并导入airtest库,安装还是看官方

https://github.com/AirtestProject/Airtest

4、贴下我写的用例。(PS,运行这条用例前,务必连接手机开启开发者模式,adb连接正常。可以用adb devices检查下)

# -*- encoding=utf8 -*-
__author__ = "guozehui"

from airtest.core.api import *
import unittest
from BeautifulReport import BeautifulReport
import os

auto_setup(__file__)


class WTestcase(unittest.TestCase):
    img_path = 'img'

    def save_img(self, img_name):
        """
            传入一个img_name, 并存储到默认的文件路径下
        :param img_name:
        :return:
        """
        snapshot(('{}/{}.png'.format(os.path.abspath(self.img_path), img_name)))

    @classmethod
    def setUpClass(cls):
        # 参数你是你连接手机后,通过adb devices可以看到的那串东西
        init_device("Android", "CLB7N18814003069")

    def setUp(self):
        # 安装电脑的apk包到手机上
        install("F:/game/你的包.apk")
        start_app("com.你的游戏包名")
        sleep(2.0)

    @BeautifulReport.add_test_img('健康公告存在')
    def test_demo(self):
        """启动测试"""
        touch(Template(r"tpl1561020321733.png", record_pos=(-0.17, 0.109), resolution=(2244, 1080)))
        assert_exists(Template(r"tpl1561020429302.png", record_pos=(0.003, -0.012), resolution=(2244, 1080)), "健康公告存在")
        self.save_img('健康公告存在')

    def tearDown(self):
        home()

    @classmethod
    def tearDownClass(cls):
        stop_app("com.你的游戏包名")
        uninstall("com.你的游戏包名")


if __name__ == '__main__':
    unittest.main()

 

5、最后就是生成报告了,在下面文件夹下运行“python sample.py”

按照步骤1,你应该把beautifulreport项目复制到了你运行python环境的,site-packages目录下了。打开这个目录,再编辑下sample.py文件

"""
@Version: 1.0
@Project: BeautyReport
@Author: Raymond
@Data: 2017/11/17 下午3:48
@File: sample.py
@License: MIT
"""
import unittest
from BeautifulReport import BeautifulReport

if __name__ == '__main__':
    # 差点忘记说了,用例的py文件一定要用test开头,或者你改下面的匹配值
    test_suite = unittest.defaultTestLoader.discover('F:/code/你存放代码的文件夹', pattern='test*.py')
    result = BeautifulReport(test_suite)
    result.report(filename='测试报告', description='启动测试', log_path='.')

嗯,就是这样完成了。---------------------------------------------------------------------------------------------------------------------------------------

啰嗦一下

python的优点就是拥有丰富的第三方库,前提是你要去找,所以大家可以多关注一下github大神们的提交。

像作者这样只是想弄个demo看下测试报告效果,自动化测试是一个工程,要想持续弄下去,需要要把所有用例规范起来,所以要想下怎么设计这个工程的目录结构。

之前提到的这位参考作者,有写自己的目录结构的,大家可以再想下自己的需要怎么弄。

https://www.jianshu.com/p/e62d3640c07c

 

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值