一 为什么要尝试去做MIT 自动化测试
1 因为HBBTV MIT页面本身页面是有自动化测试的,但是每一条case都会收费,测试结果是要花钱买的
2 QA一直手动测试,不停的按遥控器,方便QA测试。
二 研究可行性:
因为MIT页面 http://itv.mit-xperts.com/hbbtvtest/index.php 是在android平台 基于chromium的页面,可以使用appium来实现。
MIT页面:
三 实现需求
3.1 环境搭建
可参考 http://www.python3.vip/tut/auto/appium/01/
所需软件:
链接:https://pan.baidu.com/s/19C9fGmoXne8DgfXhrTB2TQ
提取码:kgwb
主要是
1 安装client编程库
pip install appium-python-client
2 安装Appium Server
可以从 上面给出的百度网盘连接 下载安装: Appium-windows-1.15.1.exe
3 Appium Desktop官方下载
https://github.com/appium/appium-desktop/releases/tag/v1.20.2
4 安装JDK 安装好之后,还需要添加一个环境变量 JAVA_HOME ,指定 值 为 jdk安装目录,比如
JAVA_HOME d:\tools\java\jdk1.8.0_211
5 安装 Android SDK
添加一个 环境变量 ANDROID_HOME ,设置值为sdk包解压目录,比如 d:\tools\androidsdk
6 在开发者模式中,启动USB调试
3.2 编写code
主要是使用python语言进行测试,这里主要是贴出部分code,抛砖引玉。
1 函数采用unittest或者pytest 测试框架
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/4/19 14:48
# @Author : cao yang
# @Site :
# @File : mit_init.py
# @Software: MIT automated test
# @Blog :https://blog.csdn.net/qq_34770510
import pytest
import unittest
import time
import os
import pathlib
# MIT 30个测试项
import Application_Manager
from appium import webdriver
from Lib import HTMLTestRunner
from appium.webdriver.extensions.android.nativekey import AndroidKey
if __name__ == "__main__":
suite = unittest.TestSuite()
# 加载测试用例
suite.addTest(Application_Manager.application_manager("test_1_destroy_application"))
suite.addTest(Application_Manager.application_manager("test_2_start_other_app_paramsHash"))
# 生成测试报告
# 选择指定时间格式
timestr = time.strftime('%Y-%m-%d%H%M%S', time.localtime(time.time()))
print("---cy 111")
filename = 'D:\\pycharm\\MIT_autotest\\result\\' + timestr + '.html'
f = open(filename, 'wb')
runner = HTMLTestRunner.HTMLTestRunner(
stream=f, # stream定义报告所写入得内容
title='MIT自动化测试报告', # itle为报告标题
description='测试结果' # description为报告得说明与描述
)
runner.run(suite)
# 关闭测试报告
f.close()
2
具体测试项:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/4/19 14:48
# @Author : cao yang
# @Site :
# @File : application_manager.py
# @Software: MIT automated test
# @Blog :https://blog.csdn.net/qq_34770510
import pytest
import unittest
import time
import os
import pathlib
import logging
from appium import webdriver
from Lib import HTMLTestRunner
from appium.webdriver.extensions.android.nativekey import AndroidKey
desired_caps = {}
desired_caps['platformName'] = 'Android' # 所运行的系统
desired_caps['platformVersion'] = '11' # 系统版本
desired_caps['deviceName'] = 'xxx' # 使用的手机类型或模拟器类型
desired_caps['appPackage'] = 'xxx' # 你想运行的 Android 应用的包名
desired_caps['appActivity'] = 'xxx' # 你想要等待启动的 Android Activity 名称
desired_caps['automationName'] = 'UiAutomator2'
desired_caps['newCommandTimeout'] = '6000'
desired_caps['noReset'] = True
desired_caps['unicodeKeyboard'] = True
desired_caps['resetKeyboard'] = True
class application_manager(unittest.TestCase):
def test_1_destroy_application(self):
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 指定到appium desktop所监听的端
四 测试效果和测试报告
效果参考B站视频:https://www.bilibili.com/video/BV1Yp4y1b7cb/
HBBTV MIT 自动化测试
自动生成测试报告: