app自动化框架详细阐述.pptx
- 文档编号:18919249
- 上传时间:2024-02-12
- 格式:PPTX
- 页数:38
- 大小:1.14MB
app自动化框架详细阐述.pptx
《app自动化框架详细阐述.pptx》由会员分享,可在线阅读,更多相关《app自动化框架详细阐述.pptx(38页珍藏版)》请在冰点文库上搜索。
自动化框架串讲姓名:
王文慧研发中心用户产品部导师:
赵海洋目录CONTENTS自动化框架介绍01TESTNG框架介绍02核心流程03项目总结与规划04自动化框架介绍自动化框架介绍技术基于SeleniumWebDriver开源技术开发用Maven进行Project管理数据管理用CSV文件存储测试数据,实现测试数据与测试用例的分离测试数据管理方便,降低自动化脚本的维护成本,实现数据驱动PO模式自身元素(WebElement)实现功能(Services)TestNG组织测试自动化框架介绍收益在集成测试阶段快速实现回归测试4.10版本开始执行每个版本跑3-5次回归测试兼容机型和系统(本地跑),覆盖外卖Top5机型,覆盖系统4.0-6.定位的bug存在的问题p版本间测试用例不兼容,兼容性开发成本较高。
比如shopdetail左右滑动的区域在4.9时是大图下的长方形区域的id,4.10版本删除了这个区域,导致这个元素id获取不到,case报错框架代码目录介绍测试代码目录变量规范定义Page类case测试相关的工具类TestBase类|setup()等源代码(core)目录所需资源目录(报告相关的配置和模板、log4j)Maven的依赖包,存放在本地默认路劲C:
user.m2项目的主体资源Target是存放项目构建后的文件和目录,jar包,war包,编译的class文件等,target里面的内容都是M2构建的时候生成的Src目录包含所有工程的源码文件,配置文件,资源文件等等,它的子目录一般包含main、testGit使用ci.yml进行项目配置,包含如何构建项目的定义,一般放在根目录改文件用于管理:
源代码,配置文件,url,项目的依项目的赖关系等等TestNG框架介绍数据管理TESTNG框架介绍即Testing,NextGeneration,下一代测试技术,是根据JUnit和NUnit思想,采用jdk的annotation技术来强化测试功能并借助XML文件强化测试组织结构而构建的测试框架。
应用范围使用步骤TESTNG单元测试集成测试系统测试编写测试业务逻辑在配置测试信息运行TestNG配置文件testng.xml数据管理TESTNG框架介绍TestNG运行方式1、Eclipse集成方式TestNG提供Eclipse插件,在runconfigure中进行配置2、Maven集成方式3、命令行方式Javaorg.testng.TestNGtestng1.xml=右键运行testNG数据管理TESTNG框架介绍TestNG的主要特点:
Annotation依赖性测试支持并发测试支持错误重运行测试参数化测试支持测试分组通过testng.xml来管理测试详实的报告,可按照自己需要进行二次开发不仅仅适用于单元测试数据管理TESTNG框架介绍TestNG使用annotation的优点:
方法名称不受任何模式或者格式的束缚;如下是TestNG使用的annotation清单:
BeforeSuite,BeforeTest,BeforeClass,BeforeMethod,BeforeGroupsAfterSuite,AfterTest,AfterClass,AfterMethod,AfterGroupsDataProviderExpectedExceptionsFactoryTestParametershttp:
/suite)onFinish(ISuitesuite)beforeInvocation()afterInvocation()onStart()onFinish()onTestFailure()onTestSkipped()onTestSuccess()核心流程核心流程CoreutilsworkflowelementsTestSuiteTestCaseTestScriptTestDataCoreDriverHelperCsvFilepropertiesDataDriverParsecsvPageclassloaderListenerappiumDriver自动化框架ResultLog4jReportNgMailReportScreenShotsUIAutomatorUIAutomatorIOSAndroidSideH5chromedriverSelenium/AppiumDriverAppiumServerSendOperationCMDtoport4727WebDriverControllerAppiumClientListentoSocketPort4727Bootstrap.jarPCSideSorketJSON自动化框架end(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextendsonExecutionStart()开始监听测试,testng启动执行之前调用onExecutionFinish()测试结束监听,testng执行完所有测试后调用ListenerAdapter核心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextends核心流程end启动监听,监听器作为守护进程在后台运行end(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextends初始化Property配置文件,放入系统属性变量中System.getProperty(“”);配置文件路劲/resource/config/Config.propertis日志设置(Log4j输出)ListenerAdapter核心流程核心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextends执行appDriver类的静态方法块,静态变量endListenerAdapter1(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextends录屏功能我们没用这个功能endListenerAdapter核心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextends运行子类Test的静态变量endListenerAdapter核心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextends从父类到子类的静态语句块、静态变量运行结束,进入监听ListenerAdapter,开始运行testNG.xml中的内容:
套件测试集测试方法endListenerAdapter核心流程1ListenerAdapter核心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextendsend核心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextendsend1ListenerAdapter测试集执行结束,进入TestBase.java中执行setup(),启动app(BeforeTest)HtmlReporterListener监听2ListenerAdapter(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextendsend1ListenerAdapter进入TestBase.java中执行setup(),启动app2ListenerAdapter核心流程(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextendsendListenerAdapter核心流程BeforeClass初始化page,因ShopMenuTest继承了TestBase类,故对initPage()进行实现改造获取到csv中的元素,12(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextendsendListenerAdapter核心流程动态加载和创建class(IndexPage)对象12(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextendsendTest运行case核心流程ListenerAdapter(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextendsend核心流程ListenerAdapter元素.click(),怎么获取元素id的呢?
这个框架已做了封装AppWebelemt.java(IExecutionListener、ISuiteListener、IInvokedMethodListener、Ireporter、ITestListener)AutTest_TestNG.xmlstartListenerBaseTestBaseShopMenuTestListenerAppDriverDataDrivercoreextendsend核心流程最后一个case执行结束有始有终onExecutionFinish()执行监听的结束方法onFinish()等afterTestteardown()killapp项目总结与规划收收获项目总结沟通能力跨端跨端合作合作版本迭代周期:
一个月一版敏捷开发流程测试测试流程流程完成一期shopmenu自动化case30个编码规范框架熟悉性能数据分析性能报告产出自动化自动化app性能性能Shopmenu业务业务水平业务水平滚动查询:
SearchOperate.WaitForStringShowAndClick_Scroll(Stringstrings)这个方法有时候滑的很快,导致当前元素已翻页,故而找不到就会报错,且滑动查找执行太慢当前case中,如果点击进入第二个页面,因某个原因报错,导致无法重跑case,怎么办呢?
trycatch()一个页面中,即有上下滑动,又有左右滑动,如果直接用封装的方法swip()滑动,因为默认swip()的滑动时间是0.5s,导致整个滑动过程特别快,在下一步操作时会报错进入第三方页面时,必须采用系统返回键返回AppDriver.longPressKey_AND(4);项目总结Case中遇到的中遇到的问题TEXTHERESupportingtexthere项目总结自动化发现的BUG店内搜索,输入关键词,本来有搜索结果,但是点击搜索btn后,server给的空值,端上显示无搜索结果已反馈给server端RD,正在修复中处理结果:
Do&TodoAPP性能性能数据分析,报告输出性能工具二次开发业务能力业务能力shopMenu业务在线取消订单:
9月下旬其他业务QA必备必备时间管理沟通能力QA意识管理-协作能力测试能力测试能力Bug定位能力自动化case:
一期完成二期自动化case:
9月中旬敏捷开发流程个人规划CODE能力能力JAVALinuxShellPythonQ&AQ&ATHANKS!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- app 自动化 框架 详细 阐述