首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >回顾18年我的Java自动化测试框架

回顾18年我的Java自动化测试框架

作者头像
wangmcn
发布于 2022-07-26 08:55:55
发布于 2022-07-26 08:55:55
96800
举报
文章被收录于专栏:AllTests软件测试AllTests软件测试
运行总次数:0

回顾18年我的Java自动化测试框架

目录

1、前言

2、框架结构

2.1、app

2.2、config

2.3、data

2.4、driver

2.5、libs

2.6、pythonProject

2.7、result

2.8、src

2.9、sshPrivateKey

2.10、startService

2.11、target

2.12、testng

2.13、pom.xml

1、前言

18年的时候,根据项目组需要,编写了一套 Java 版的自动化测试框架,可进行包括 APP(AndroidiOS)、H5、Web、接口的自动化测试任务。测试报告可通过 HTML 报告或 Excel 报告的方式进行查看。此框架在项目组期间已落地使用并助力测试回归时发现了一些问题(BUG)。

框架开发完成后,只维护了一段时间,之后(离开项目组)就一直到现在没有再维护了,所以一些封装的方法与框架设计思想等有些“过时”了。接下来回顾一下此框架,也算是一个框架总结,为后续的升级改造做准备。

2、框架结构

测试框架(AllRound_Test)整体结构:

2.1、app

app 目录存放手机应用程序,分为 Android 和 iOS。当执行自动化脚本时,如果设置采用先安装手机应用程序的方式,则会根据路径安装指定的 APP 程序。

2.2、config

config 目录存放配置文件。

app.properties 存放 Android / iOS 包名。

browserdriver.properties 存放浏览器驱动的路径。

data.properties 存放测试数据,分为:Android、iOS、H5、接口。

linuxdriver.properties 存放连接 Linux 的配置信息。

mongodriver.properties 存放连接 MongoDB 的配置信息。

sqldriver.properties 存放 MySQL 的配置信息。

sshPrivateKey.properties 存放连接 SSH 的密钥路径。

url.properties 存放访问的 URL 地址,分为:H5、Web。

2.3、data

data 目录存放格式为 .xls 测试数据,分为:Android、iOS、H5、接口。

表格数据内容。

2.4、driver

driver 目录存放浏览器驱动程序,按操作系统分为:Windows、Mac。

2.5、libs

libs 目录,根据测试项目要求,使用 Jython 语言(即在 Java 环境下使用 Python 语言)。

2.6、pythonProject

pythonProject 目录存放 Python 脚本文件。

如图,一个单文件脚本(adder.py)、一个示例项目(TestDemo)。

例如 TestDemo.py 脚本(就是 Python 脚本语法,不需要任何修改)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from selenium import webdriver
import unittest, time, os
import HTMLTestRunner

def data_dirs():
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    DATA_DIRS = (
        os.path.join(BASE_DIR, 'HTMLTestRunner生成测试报告'),
    )
    d = '/'.join(DATA_DIRS)
    print(d)
    return d
    
class Baidu(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(10)
        self.base_url = "http://www.baidu.com/"
        self.verificationErrors = []
        
    #百度搜索用例
    def test_baidu_search(self):
        u'''百度搜索用例'''
        driver = self.driver
        driver.get(self.base_url)
        driver.find_element_by_id("kw").send_keys("HTNMLTestRunner")
        driver.find_element_by_id("su").click()
        
    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)
        
if __name__ == "TestDemo":
    #测试套件
    testunit=unittest.TestSuite()
    #添加测试用例到测试套件中
    testunit.addTest(Baidu("test_baidu_search"))
    #获取当前时间
    now = time.strftime("%Y-%m-%d %H_%M_%S")
    #定义个报告存放路径
    filename = data_dirs() + '/'+now+' result.html'
    fp = open(filename, 'wb')
    #定义测试报告
    runner =HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'百度搜索测试报告', description=u'用例执行情况:')
    #运行测试用例
    runner.run(testunit)
    #关闭报告文件
    fp.close()

2.7、result

result 目录存放测试日志与测试报告。

测试日志。

测试报告-测试步骤。

测试报告-总览。

报错自动截图,并存储在指定目录里。

2.8、src

src 目录存放基类、页面元素、方法封装、报告插件、测试用例、公共方法等。

(1)base 目录存放基类,根据不同的场景分类,可执行 APP(Android、iOS)、Web、接口、Python 脚本。

例如:BaseParpareApp_android.java (执行手机端 Android,部分代码)

(2)pages 目录存放页面元素类。

例如:DemoPage_android.java(部分代码)

(3)pageshelper 目录存放用于不同页面的方法封装。

例如:WeiboPageHelper_android.java(封装登录,部分代码)

(4)plugins 目录存放测试报告插件,支持生成 Excel 或 HTML 共三种方式的测试报告。

(5)testcases 目录存放测试用例。

例如 AppTest_Weibo_android.java(授信,部分代码)

(6)utils 目录存放公共方法。各种点击事件、读写 Excel 表格、初始化数据、调用命令行、接口方法封装、MySQL 操作(增删改查)、键盘操作、SSH 命令操作、MD5 加密、MongoDB 操作(增删改查)、驱动本地/远程浏览器、封装 Selenium 方法和常用方法、启动与关闭 appium 服务等。

例如:SelectBrowser.java(打开本地浏览器,部分代码)

2.9、sshPrivateKey

sshPrivateKey 目录存放用于连接 Linux 的 SSH 私钥。

2.10、startService

startService 目录存放可在命令行执行启动 Appium 服务的命令。

启动 Appium 服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
appium --address 127.0.0.1 --port 4723 --no-reset --session-override

2.11、target

target 目录存放通过 Maven 编译该项目后所产生的 .class 文件等。

2.12、testng

testng 目录存放单元测试框架 TestNG 所要执行脚本的 .xml 文件。

例如:testng_weibo_honor7.xml(配置参数,部分内容)

将测试用例合并为测试集。

三种测试报告模式,选择哪种,就把监听打开即可。

2.13、pom.xml

pom.xml 文件,描述了该项目的 Maven 坐标,依赖关系,开发者需要遵循的规则,组织等,是项目级别的配置文件。

使用 Jenkins 持续集成的方式,进行手动或自动或定时触发此文件,来进行测试脚本的执行。

例如:pom_android_weibo.xml 文件(部分内容)

主要依赖的包 testng、appium、jxl、log4j、selenium、mysql-connector-java、okhttp、allure-testng-adaptor、mongo-java-driver 等。

指定执行的 TestNG 的 .xml 文件。

整体流程:

Jenkins(手动/自动/定时)触发 -> Maven 的 pom.xml 文件 -> TestNG 的 .xml 文件 -> 测试集(启动服务、测试基类、测试用例、操作步骤、公共方法)-> 测试日志、测试报告、错误截图

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AllTests软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
中国首份仿生机器人产业全景报告发布!大模型带来加速度,三大指标决定竞争格局
马斯克、雷军等,纷纷押注这一赛道。特斯拉全尺寸仿生机器人Optimus、小米全尺寸通用人形机器人CyberOne,满足了人们对人形机器人的初级想象。
量子位
2023/09/08
2.2K0
中国首份仿生机器人产业全景报告发布!大模型带来加速度,三大指标决定竞争格局
小米造“人”比特斯拉还快:首款全尺寸人形仿生机器人CyberOne发布
梦晨 韩智 发自 凹非寺 量子位 | 公众号 QbitAI 什么?小米发布了全尺寸仿生人形机器人? 就在雷军在个人年度演讲快结束时,顺手扔出了这个王炸——全尺寸仿生人形机器人CyberOne。 并且这次不是PPT,也不是请人穿着道具上去跳舞,而是直接拿出原型机,现场和雷军互动了一番。 近些年,机器人俨然成为众多科技公司展现自己综合研发实力最好的产品。 从早年的波士顿动力、软银Pepper,到去年马斯克的一手「快闪」,每次发布都引来无数关注—— 小米这台CyberOne与其他家有什么区别?这个雷总的新宠到
量子位
2022/08/26
3910
小米造“人”比特斯拉还快:首款全尺寸人形仿生机器人CyberOne发布
国产人形机器人火到国外!不惧偷袭还带闪,AI大佬:定价好低要改变行业规则了
如此背景,加上宇树官方透露的“低于9万美元(约合65万人民币)”的售价,难怪有网友认为:
量子位
2023/09/08
3950
国产人形机器人火到国外!不惧偷袭还带闪,AI大佬:定价好低要改变行业规则了
「爱因斯坦」变网红?这个仿生机器人连老年斑都不放过
位于2021世界机器人博览会序厅、身穿笔挺西装的「爱因斯坦」不停挥舞双臂为现场观众讲解。
新智元
2021/10/12
6640
大象机器人发布智能遥操作机械臂组合myArm M&C,加速具身智能研究与发展!
在全球工业自动化和智能化加速发展的今天,机器人行业正经历着翻天覆地的变化。具身智能研究,作为人工智能领域的关键分支,正努力在精准动作控制、高层次自主决策能力以及自然人机交互体验上赋予机器人新的能力。
大象机器人
2024/04/12
6510
大象机器人发布智能遥操作机械臂组合myArm M&C,加速具身智能研究与发展!
【技术创作101训练营】人形机器人的成长史
今天我们讨论的课题是人形机器人的成长史,从360度观察人形机器人的成长,让大家了解人形机器人的过去、现在和未来。
ZC_Robot机器人技术
2021/01/16
5.8K12
【技术创作101训练营】人形机器人的成长史
走路都会摔倒的小米“铁大”机器人,终于学会了打架子鼓,似乎打的还不错?
大数据文摘出品 几个月前,当小米宣布推出“铁大”CyberOne人形机器人时,人们并不完全清楚小米究竟打算让这款机器人做些什么。 大家的猜测是,小米现在不会说“铁大”将有某种实际用途,而是将其作为一种探索可能性的方式,探索可以迁移到其它地方的实际应用技术。 令人惊喜的是,小米的机器人专家已经开始教会机器人做一些即使不是十分有用,至少也很吸引眼球的事情——比如打架子鼓。 看下面这个视频,一招一式貌似打的还不错。 从走路都会摔倒到自己学会打架子鼓 演奏的谱子其实是给“铁大”输入是一个MIDI文件,铁大能够将其解
大数据文摘
2023/04/10
3890
走路都会摔倒的小米“铁大”机器人,终于学会了打架子鼓,似乎打的还不错?
机器人 / 仿生 / 机械人身化 AI(Embodied AI)------制造业智能化转型的关键引擎
人工智能(AI)的早期发展主要集中在认知层面——如自然语言处理(NLP)、计算机视觉(CV)、推荐算法等,它们“思考”但不“行动”。
知孤云出岫
2025/10/14
1890
机器人 / 仿生 / 机械人身化 AI(Embodied AI)------制造业智能化转型的关键引擎
机器人、大模型“生态共融”还早得很丨对话云深处朱秋国
杭州“六小龙”的创新矩阵中,具身智能公司云深处科技选择的赛道有些 “与众不同”——跳出行业当下的热门叙事“人形机器人”,更专注于工业级四足机器人的深度研发。
小腾资讯君
2025/09/08
2910
2025 WAIC探展攻略 | 具身智能篇
四大主题展馆,3000余件前沿展品、800多家企业同台竞技,7万平方米展区让你一次看尽全球AI产业的全景演练。
AIGC新知
2025/07/29
4200
2025 WAIC探展攻略 | 具身智能篇
15位学界、业界大咖深度解读仿生机器人及机器人应用丨CCF-GAIR 2018
AI研习社按:2018 全球人工智能与机器人峰会(CCF-GAIR)在深圳召开,峰会由中国计算机学会(CCF)主办,雷锋网、香港中文大学(深圳)承办,得到了深圳市宝安区政府的大力指导,是国内人工智能和机器人学术界、工业界及投资界三大领域的顶级交流盛会,旨在打造国内人工智能领域最具实力的跨界交流合作平台。
AI研习社
2018/07/26
5770
15位学界、业界大咖深度解读仿生机器人及机器人应用丨CCF-GAIR 2018
从《西部世界》谈起,仿生机器人十二问 | CCF-GAIR 2018
普渡大学副教授邓新燕结合自己的实际工作,分享了她在生物运动机理和仿生机器人的研究突破和最新进展。
AI科技评论
2018/07/27
8050
从《西部世界》谈起,仿生机器人十二问 | CCF-GAIR 2018
机器人崛起:具身智能的技术、商业与社会落地路线图
【AI&Society百人百问】是由腾讯研究院联合多方发起,通过不同学科背景、不同领域从业者的提问与解答,促进围绕人工智能的多元、前瞻与系统化思考。百人百问旨在聚焦生成式人工智能带来的技术、商业与社会议题,通过多方对话、研究与协同,探索面向智能化未来的新路径、新范式,更好发挥人工智能的潜力与优势,致力于提升社会福祉。
小腾资讯君
2024/07/02
3780
技术融合与创新大象机器人水星Mercury X1人形机器人案例研究!
在科技迅速发展的当下,人形机器人正变得日益重要,其应用范围从工业自动化到服务业不断扩展。本文将通过Mercury X1大象人形机器人的案例,探讨如何利用尖端技术如大型语言模型(LLM)、同时定位与映射(SLAM)、机器人操作系统(ROS)、开源计算机视觉(OpenCV)和S-Tag标记码技术来实现复杂环境中的精确物体抓取和移动。
大象机器人
2024/04/28
5340
技术融合与创新大象机器人水星Mercury X1人形机器人案例研究!
从扭秧歌到跑半马:机器人离「iPhone时刻」还有多远?
从春晚舞台上扭秧歌、转手绢,到稳健完整跑完半程马拉松…… 过去半年,一系列炫酷的表演,把人们对机器人的认知从想象拉进了现实。
机器之心
2025/06/19
1120
从扭秧歌到跑半马:机器人离「iPhone时刻」还有多远?
水星Mercury X1轮式人形机器人结合openc算法&STag标记码视觉系统实现精确抓取!
本案例展示了如何利用视觉系统提升机械臂的抓取精度,成功实现了人形机器人的双臂抓取不在局限于单臂抓取。
大象机器人
2024/08/12
3440
水星Mercury X1轮式人形机器人结合openc算法&STag标记码视觉系统实现精确抓取!
困在赛博世界里的“仿生机器人”
故事发生在几十年后的反乌托邦地球,整个世界充斥着黑色、阴暗的基调,人和机器的界限越来越模糊,虚拟和现实彼此交融混杂……隐藏在赛博背景下的,则是对生命、情感、人性等命题的哲思。
Alter聊科技
2022/08/17
4190
困在赛博世界里的“仿生机器人”
挤不动的世界机器人大会上,自变量秀出了真·通用具身智能
今天上午,2025 世界机器人大会 WRC 正式开幕。最近的 AI 技术突破,让参展的公司纷纷拿出了新技术,人头攒动的展台之间,我们看到了一众「具身智能」加持的机器人,其中很多还是首次发布。
机器之心
2025/08/09
6200
挤不动的世界机器人大会上,自变量秀出了真·通用具身智能
机械手或机械臂傻笨粗,只有这些才能称为机器人
在国外,robot不是特指我们所说的工业机器人和服务机器人,还包括无人机、无人驾驶汽车、AGV等一切可编程的多功能机械装置。而中国人把robot翻译成机器人,可以说并不准确。当然,我们今天要讨论的是狭义上的工业机器人。 机器人的历史并不算长,1959年美国英格伯格和德沃尔制造出世界上第一台工业机器人,机器人的历史才真正开始。目前在工厂里代替工人干活的,基本上也是这类机器人。但是,很多人认为,这些机器人只能按照程序完成点对点的工作任务,死板且不需要逻辑,这些为汽车应用而诞生的设备,顶多只能称为机械手或机械臂。
机器人网
2018/04/13
1.9K0
机械手或机械臂傻笨粗,只有这些才能称为机器人
山东大学宋锐:从波士顿动力到“中国大狗”,四足仿生机器人研究与思考(PPT)
【新智元导读】2016年10月18日的世界人工智能大会上,山东大学机器人研究中心副主任宋锐出席并发表了题为《四足仿生机器人研究与思考 》的演讲。宋锐在演讲中介绍了四足仿生机器人的研究背景,国内国外的研
新智元
2018/03/23
3.1K0
山东大学宋锐:从波士顿动力到“中国大狗”,四足仿生机器人研究与思考(PPT)
推荐阅读
中国首份仿生机器人产业全景报告发布!大模型带来加速度,三大指标决定竞争格局
2.2K0
小米造“人”比特斯拉还快:首款全尺寸人形仿生机器人CyberOne发布
3910
国产人形机器人火到国外!不惧偷袭还带闪,AI大佬:定价好低要改变行业规则了
3950
「爱因斯坦」变网红?这个仿生机器人连老年斑都不放过
6640
大象机器人发布智能遥操作机械臂组合myArm M&C,加速具身智能研究与发展!
6510
【技术创作101训练营】人形机器人的成长史
5.8K12
走路都会摔倒的小米“铁大”机器人,终于学会了打架子鼓,似乎打的还不错?
3890
机器人 / 仿生 / 机械人身化 AI(Embodied AI)------制造业智能化转型的关键引擎
1890
机器人、大模型“生态共融”还早得很丨对话云深处朱秋国
2910
2025 WAIC探展攻略 | 具身智能篇
4200
15位学界、业界大咖深度解读仿生机器人及机器人应用丨CCF-GAIR 2018
5770
从《西部世界》谈起,仿生机器人十二问 | CCF-GAIR 2018
8050
机器人崛起:具身智能的技术、商业与社会落地路线图
3780
技术融合与创新大象机器人水星Mercury X1人形机器人案例研究!
5340
从扭秧歌到跑半马:机器人离「iPhone时刻」还有多远?
1120
水星Mercury X1轮式人形机器人结合openc算法&STag标记码视觉系统实现精确抓取!
3440
困在赛博世界里的“仿生机器人”
4190
挤不动的世界机器人大会上,自变量秀出了真·通用具身智能
6200
机械手或机械臂傻笨粗,只有这些才能称为机器人
1.9K0
山东大学宋锐:从波士顿动力到“中国大狗”,四足仿生机器人研究与思考(PPT)
3.1K0
相关推荐
中国首份仿生机器人产业全景报告发布!大模型带来加速度,三大指标决定竞争格局
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档