版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、自动化框架串讲姓名:王文慧研发中心用户产品部导师:赵海洋目录 CONTENTS自动化框架介绍01TESTNG框架介绍02核心流程03项目总结与规划04自动化框架介绍自动化框架介绍技术基于Selenium WebDriver开源技术开发用Maven进行Project管理数据管理用CSV文件存储测试数据,实现测试数据与测试用例的分离测试数据管理方便,降低自动化脚本的维护成本,实现数据驱动PO模式自身元素(WebElement)实现功能 (Services)TestNG组织测试自动化框架介绍收益在集成测试阶段快速实现回归测试4.10版本开始执行每个版本跑3-5次回归测试兼容机型和系统(本地跑),覆盖
2、外卖Top5机型,覆盖系统4.0-6.定位的bug存在的问题版本间测试用例不兼容,兼容性开发成本较高。比如shopdetail 左右滑动的区域 在4.9时是大图下的长方形区域的id,4.10版本删除了这个区域,导致这个元素id获取不到,case报错框架代码目录介绍测试代码目录变量规范定义Page类case测试相关的工具类TestBase类|setup()等源代码(core)目录所需资源目录(报告相关的配置和模板、log4j)Maven的依赖包,存放在本地默认路劲C:user.m2项目的主体资源Target是存放项目构建后的文件和目录,jar包,war包,编译的class文件等,target里面
3、的内容都是M2构建的时候生成的Src目录包含所有工程的源码文件,配置文件,资源文件等等,它的子目录一般包含main、testGit使用ci.yml进行项目配置,包含如何构建项目的定义,一般放在根目录改文件用于管理:源代码,配置文件,url,项目的依项目的赖关系等等TestNG框架介绍数据管理TESTNG框架介绍即Testing, Next Generation,下一代测试技术,是根据JUnit和NUnit思想,采用jdk的annotation技术来强化测试功能并借助XML 文件强化测试组织结构而构建的测试框架。应用范围使用步骤TESTNG单元测试 集成测试 系统测试编写测试业务逻辑在配置测试信
4、息运行TestNG配置文件testng.xml数据管理TESTNG框架介绍TestNG运行方式1、Eclipse集成方式TestNG提供Eclipse插件,在run configure中进行配置2、Maven集成方式3、命令行方式Javaorg.testng.TestNG testng1.xml = 右键运行testNG数据管理TESTNG框架介绍TestNG的主要特点: Annotation 依赖性测试 支持并发测试 支持错误重运行测试 参数化测试 支持测试分组 通过testng.xml来管理测试 详实的报告,可按照自己需要进行二次开发 不仅仅适用于单元测试数据管理TESTNG框架介绍Tes
5、tNG使用annotation的优点:方法名称不受任何模式或者格式的束缚;如下是TestNG使用的annotation清单: BeforeSuite, BeforeTest, BeforeClass, BeforeMethod, BeforeGroups AfterSuite, AfterTest, AfterClass, AfterMethod, AfterGroups DataProvider ExpectedExceptions Factory Test Parameters/pages/viewpage.action?pageId=11546672数据管理TESTNG框架介绍基本使用当
6、testNG运行的case有失败的时候,会在test-output目录下生成一个testng-failed.xml文件,这对于批量执行测试定位问题很有帮助,testng可以单独执行这些失败的测试;使用参数TestNG传参数的两种方式(xml文件,DataProvider)下面这个方法没用到数据管理TESTNG框架介绍监听器尽管名字叫监听器,但事实上它们只是一些预定义的 Java 接口。用户创建这些接口的实现类,并把它们加入到 TestNG 中,TestNG 便会在测试运行的不同时刻调用这些类中的接口方法监听器接口ListenerIExecutionListennerISuiteListener
7、IInvokedMethodListenerTestListenerAdapterIReporteronExecutionStart()onExecutionFinish()onStart(ISuite suite)onFinish(ISuite suite)beforeInvocation()afterInvocation()onStart()onFinish()onTestFailure()onTestSkipped()onTestSuccess()核心流程核心流程CoreutilsworkflowelementsTestSuiteTestCaseTestScriptTest DataCo
8、re DriverHelperCsv FilepropertiesData DriverParse csvPageclassloaderListenerappium Driver自动化框架ResultLog4jReportNgMail ReportScreenShotsUIAutomatorUIAutomatorIOSAndroid SideH5chromedriverSelenium/AppiumDriverAppium ServerSendOperation CMD to port 4727WebDriver ControllerAppium ClientListen to Socket
9、Port4727Bootstrap.jarPC SideSorketJSON自动化框架end(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstart ListenerBaseTestBaseShopMenuTest ListenerAppDriverData DrivercoreextendsonExecutionStart() 开始监听测试,testng启动执行之前调用onExecutionFinish() 测试结束监听,testng执行完
10、所有测试后调用ListenerAdapter核心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstart ListenerBaseTestBaseShopMenuTest ListenerAppDriverData Drivercoreextends核心流程end启动监听,监听器作为守护进程在后台运行end(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter
11、、ITestListener)AutTest_TestNG.xmlstart ListenerBaseTestBaseShopMenuTest ListenerAppDriverData Drivercoreextends初始化Property配置文件,放入系统属性变量中System.getProperty(“”); 配置文件路劲/resource/config/Cpertis 日志设置(Log4j输出)ListenerAdapter核心流程核心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITest
12、Listener)AutTest_TestNG.xmlstart ListenerBaseTestBaseShopMenuTest ListenerAppDriverData Drivercoreextends执行appDriver类的静态方法块,静态变量endListenerAdapter1(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstart ListenerBaseTestBaseShopMenuTest ListenerAppDri
13、verData Drivercoreextends录屏功能我们没用这个功能endListenerAdapter核心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstart ListenerBaseTestBaseShopMenuTest ListenerAppDriverData Drivercoreextends运行子类Test的静态变量endListenerAdapter核心流程(IExecutionListener、ISuiteLi
14、stener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstart ListenerBaseTestBaseShopMenuTest Listener AppDriverData Drivercoreextends从父类到子类的静态语句块、静态变量运行结束,进入监听ListenerAdapter ,开始运行testNG.xml中的内容:套件测试集测试方法endListenerAdapter核心流程1ListenerAdapter 核心流程(IExecutionListener、ISuiteListener、
15、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstart ListenerBaseTestBaseShopMenuTest Listener AppDriverData Drivercoreextendsend核心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstart ListenerBaseTestBaseShopMenuTest Listener A
16、ppDriverData Drivercoreextendsend1ListenerAdapter 测试集执行结束,进入TestBase.java中执行setup(),启动app (BeforeTest)HtmlReporterListener监听2ListenerAdapter(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstart ListenerBaseTestBaseShopMenuTest Listener AppDriverDat
17、a Drivercoreextendsend1ListenerAdapter 进入TestBase.java中执行setup(),启动app2ListenerAdapter核心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstart ListenerBaseTestBaseShopMenuTest Listener AppDriverData DrivercoreextendsendListenerAdapter核心流程BeforeCla
18、ss初始化page,因ShopMenuTest 继承了TestBase类,故对initPage() 进行实现改造获取到csv中的元素,12(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstart ListenerBaseTestBaseShopMenuTest Listener AppDriverData DrivercoreextendsendListenerAdapter核心流程动态加载和创建class(IndexPage)对象12(IE
19、xecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstart ListenerBaseTestBaseShopMenuTest Listener AppDriverData DrivercoreextendsendTest运行case核心流程ListenerAdapter(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_Te
20、stNG.xmlstart ListenerBaseTestBaseShopMenuTest Listener AppDriverData Drivercoreextendsend核心流程ListenerAdapter元素.click(),怎么获取元素id的呢?这个框架已做了封装AppWebelemt.java(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstart ListenerBaseTestBaseShopMenuTest Listener AppDriverData Drivercoreextendsend核心流程最后一个case执行结束有始有终onExecutionFinish()执行监听的结束方法onFinish()等afterTest teardown() killapp项目总结与规划收获项目总结沟通能力跨端合作版本迭代周期:一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钽铌压制成型工岗后知识考核试卷含答案
- 2026年医师处方授予测试题及答案
- 2026年数学北师必修二测试题及答案
- 金属打火机制作工诚信道德水平考核试卷含答案
- 储能电站户外舱体防晒施工方案
- 储能电站峰谷调度方案
- 湖盐脱水工岗前技术实务考核试卷含答案
- 储能电站地形测量方案
- 企业员工职业生涯规划与发展指导书
- 市场进入风险预警函3篇范文
- 眼科学智慧树知到答案章节测试2023年同济大学
- LY/T 1778-2008平贝母栽培技术规程
- GB/T 25218-2010粮油机械产品涂装通用技术条件
- GB/T 10067.1-2019电热和电磁处理装置基本技术条件第1部分:通用部分
- 第1节-种植工程课件
- 优莎娜葆婴奖金新版制度详解
- 思想道德与法治课件:第四章 第二节 社会主义核心价值观的显著特征
- 质量信得过班组ppt课件(PPT 17页)
- 2021年高考理综物理真题试卷(山东卷)
- 河南省高中毕业生登记表
- 流动资金自动测算表(内自带计算公式)
评论
0/150
提交评论