CN117076288A - ios中应用动态调试方法及装置 - Google Patents
ios中应用动态调试方法及装置 Download PDFInfo
- Publication number
- CN117076288A CN117076288A CN202310769825.9A CN202310769825A CN117076288A CN 117076288 A CN117076288 A CN 117076288A CN 202310769825 A CN202310769825 A CN 202310769825A CN 117076288 A CN117076288 A CN 117076288A
- Authority
- CN
- China
- Prior art keywords
- application
- modification
- display
- display element
- current page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 230000004048 modification Effects 0.000 claims description 99
- 238000012986 modification Methods 0.000 claims description 99
- 230000004044 response Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 27
- 238000012360 testing method Methods 0.000 claims description 22
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000002347 injection Methods 0.000 description 3
- 239000007924 injection Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- GXCLVBGFBYZDAG-UHFFFAOYSA-N N-[2-(1H-indol-3-yl)ethyl]-N-methylprop-2-en-1-amine Chemical compound CN(CCC1=CNC2=C1C=CC=C2)CC=C GXCLVBGFBYZDAG-UHFFFAOYSA-N 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000059 patterning Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3628—Software debugging of optimised code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种ios中应用动态调试方法及装置,应用于移动互联技术领域,包括:在应用当前页面上显示调试窗口;获取应用当前页面的所有展示元素;根据展示元素的类型给每个展示元素添加标签;根据每个展示元素的视图层级及每个展示元素之间的层级关系判断所有展示元素的层级;根据所有展示元素的层级将展示元素标签显示在调试窗口;扫描应用当前页面的所有展示元素,根据预设判断条件判断展示元素错误;将展示元素错误显示到调试窗口,本发明可以实现脱离Xcode查看展示元素层级,自动判断展示元素错误,提高ios中应用动态调试效率。
Description
技术领域
本发明涉及移动互联技术领域,尤其涉及一种ios中应用动态调试方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
现有的ios(iPhone OS,苹果移动操作系统)中应用调试基于Xcode工具,Xcode是基于mac(Macintosh,麦金塔计算机)的一个工具,这就使得测试脱离不了mac,使得测试变得很复杂,有些时候页面上不能肉眼看出视图的层级和位置,也使得测试变的很复杂。现有基于Xcode调试方法中,当我们需要改变页面上某个值或者某个图层的颜色来改变页面时,手机和Xcode要始终保持通信且无法断开,需要通过打断点或者通过log(日志)来调试。且必须在Xcode中改写代码并编译,并且修改代码后需要重新编译重新运行,再次编译启动会重启应用,操作耗时且不灵活。
现有的脱离Xcode的调试方法也存在许多问题:首先,测试人员只能看到表面的信息,且无法修改,碰到大部分问题测试人员也给不出相应的修改意见,测试人员只能通过业务表现,及页面的文字来定位问题位置并记录汇报给开发人员修改。另外,查看展示元素UI的层级需要借助Xcode中的查看层级工具进行,图形化的问题较难找到。测试人员无法只通过应用知道展示元素上的很多错误,只能看到显示错误,如某个展示元素是白色的,背景色也是白色,则看不到展示元素,也不知道展示元素位置。很多展示元素的错误是可以通过代码扫描出来的,现在官方没有提供自动扫描展示元素错误的工具。
发明内容
本发明实施例提供一种ios中应用动态调试方法,用以实现脱离Xcode查看展示元素层级,自动判断展示元素错误,提高ios中应用动态调试效率,该方法包括:
在应用当前页面上显示调试窗口;
获取应用当前页面的所有展示元素;
根据展示元素的类型给每个展示元素添加标签;
根据每个展示元素的视图层级及每个展示元素之间的层级关系判断所有展示元素的层级;
根据所有展示元素的层级将展示元素标签显示在调试窗口;
扫描应用当前页面的所有展示元素,根据预设判断条件判断展示元素错误;
将展示元素错误显示到调试窗口。
本发明实施例还提供一种ios中应用动态调试装置,用以实现脱离Xcode查看展示元素层级,自动判断展示元素错误,提高ios中应用动态调试效率,该装置包括:
调试窗口模块,用于在应用当前页面上显示调试窗口;
获取模块,用于获取应用当前页面的所有展示元素;
标签模块,用于根据展示元素的类型给每个展示元素添加标签;
层级模块,用于根据每个展示元素的视图层级及每个展示元素之间的层级关系判断所有展示元素的层级;
显示模块,用于根据所有展示元素的层级将展示元素标签显示在调试窗口;
扫描模块,用于扫描应用当前页面的所有展示元素,根据预设判断条件判断展示元素错误;
显示模块,还用于将展示元素错误显示到调试窗口。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述ios中应用动态调试方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述ios中应用动态调试方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述ios中应用动态调试方法。
本发明实施例与现有技术中脱离Xcode的调试方案相比,通过在应用当前页面上显示调试窗口;获取应用当前页面的所有展示元素;根据展示元素的类型给每个展示元素添加标签;根据每个展示元素的视图层级及每个展示元素之间的层级关系判断所有展示元素的层级;根据所有展示元素的层级将展示元素标签显示在调试窗口;扫描应用当前页面的所有展示元素,根据预设判断条件判断展示元素错误;将展示元素错误显示到调试窗口,可以实现脱离Xcode查看展示元素层级,自动判断展示元素错误,提高ios中应用动态调试效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为ios中依赖Xcode的应用调试方法的流程图;
图2为现有ios中脱离Xcode的应用调试方法的流程图;
图3为本发明实施例中ios中应用动态调试方法的流程图;
图4为本发明实施例中调试窗口示意图;
图5为本发明实施例中ios中应用动态调试方法的具体实例的流程图;
图6为本发明实施例中ios中应用动态调试方法的具体实例的流程图;
图7为本发明实施例中ios中应用动态调试方法的具体实例的流程图;
图8为本发明实施例中ios中应用动态调试方法的具体实例的流程图;
图9为本发明实施例中ios中应用动态调试方法的具体实例的流程图;
图10为本发明实施例中ios中应用动态调试方法的具体实例的流程图;
图11为本发明实施例中ios中应用动态调试方法的具体实例的流程图;
图12为本发明实施例中ios中应用动态调试方法的具体实例的流程图;
图13为本发明实施例中ios中应用动态调试装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
图1为ios中依赖Xcode的应用调试方法的流程图,如图1所示,基于Xcode的应用调试,测试人员需操作手机,手机和Xcode要始终保持通信且无法断开,应用调试需要通过打断点或者log,修改代码、观察展示元素的层级等都需要依赖Xcode。并且页面上不能轻易看出视图的层级和位置,当需要改变页面上某个值或者某个图层的颜色来改变页面时,必须在Xcode中改写代码并编译,再次编译启动会重启应用,打断测试,使得测试复杂,操作耗时且不灵活。
图2为现有ios中脱离Xcode的应用调试方法的流程图,如图2所示,测试人员在手机上看不到任何log或展示元素层级,只能看到表面的信息,通过业务表现及页面的文字来定位问题位置,且无法修改问题,碰到大部分问题测试人员也给不出相应的修改意见。
基于上述问题,本发明实施例提供一种ios中应用动态调试方法。图3为本发明实施例中ios中应用动态调试方法的流程图,包括:
步骤301,在应用当前页面上显示调试窗口;
步骤302,获取应用当前页面的所有展示元素;
步骤303,根据展示元素的类型给每个展示元素添加标签;
步骤304,根据每个展示元素的视图层级及每个展示元素之间的层级关系判断所有展示元素的层级;
步骤305,根据所有展示元素的层级将展示元素标签显示在调试窗口;
步骤306,扫描应用当前页面的所有展示元素,根据预设判断条件判断展示元素错误;
步骤307,将展示元素错误显示到调试窗口。
图4为本发明实施例中调试窗口示意图,在一个实施例中,在应用上悬浮一调试窗口,自动获取配置,发送给应用商店的release包不会显示,只在开发模式下显示,,且调试窗口可以拖动。调试窗口可以提供显示当前页面所有UI以及层级、开始记录点击的响应链、显示自动扫描结果或其他根据测试需求增加的功能。
在一个实施例中,可以利用UI标签记录工具根据展示元素的类型给每个展示元素添加标签。图5为本发明实施例中ios中应用动态调试方法的具体实例的流程图,如图5所示,利用UI标签记录工具在ios运行时给所有展示元素UI动态打上标签,标签作为UI本身的一个属性,无需修改代码,运行时自动添加,对代码没有侵入,方便后续操作。标签按不同的UI类型有不同的命名,记录到内存中,每个页面的标签计数独立,当操作页面改变时重新计算,并重置内存记录。命名前扫描类的属性,命名规则和已有属性不冲突。所打标签不能重名,如果重名则添加随机后缀,再次扫描,如还有重名则再次添加直至无重名。
在一个实施例中,可以利用UI层级筛查工具根据每个展示元素的视图层级及每个展示元素之间的层级关系判断所有展示元素的层级。图6为本发明实施例中ios中应用动态调试方法的具体实例的流程图,如图6所示,利用UI层级筛查器扫描所有UI,按层级划分并记录UI的基类名称和开发者的命名,依据在每个UI所属的视图view上添加的层级以及view本身的层级来判断所有UI的层级。
在一个实施例中,可以利用UI层级显示操作工具根据所有展示元素的层级将展示元素标签显示在调试窗口。图7为本发明实施例中ios中应用动态调试方法的具体实例的流程图,如图7所示,根据UI标签记录工具及UI层级筛查工具,以列表形式将UI的层级显示在调试窗口,列表按层级可展开收起,当点击某个UI时,弹出操作框,用户可根据选项选择不同的操作,如展示UI详情或修改保存等。
在一个实施例中,ios中应用动态调试方法还包括:接收对应用当前页面的任一展示元素的修改操作;根据修改操作类型判断修改操作是否能直接生效,若是,根据修改操作对展示元素进行修改;若否,根据修改操作插入修改代码,刷新当前页面。
图8为本发明实施例中ios中应用动态调试方法的具体实例的流程图,如图8所示,在本实施例中,可以利用代码注入修改工具注入部分代码,如改变某个UI的大小,点击范围,写一些简单的判断逻辑等。因为修改内容不同会导致生效的方式不同,会根据修改的内容做判断,如能在内存中找到对应的实体且修改的属性能即刻生效则不会刷新当前页面,如不能即刻生效则注入代码并刷新页面。
在一个实施例中,接收对应用当前页面的任一展示元素的修改操作,包括:接收对应用当前页面的任一展示元素的点击操作;根据所述展示元素的类型显示可操作选项;接收用户通过可操作选项发来的修改操作。
图9为本发明实施例中ios中应用动态调试方法的具体实例的流程图,如图9所示,在本实施例中,可以动态修改某个UI组件的内容或插入代码,当用户点击某个UI时,会根据标签找到现在运行的UI的实例,并根据UI的类型显示不同的可操作选项。例如点击是一个UIButton类型的UI时,用户可以对UI的颜色,大小点击范围等进行修改,这时需要用到代码注入修改工具。
在本实施例中,在根据修改操作类型判断修改操作是否能直接生效,若是,根据修改操作对展示元素进行修改;若否,根据修改操作插入修改代码,刷新当前页面之后,还包括:对修改操作进行重置或对修改操作进行保存。
在一个实施例中,扫描应用当前页面的所有展示元素,根据预设判断条件判断展示元素错误可以是:自动扫描UI层级,对一些风险较大的地方给出提示,如某个UI添加的位置永远被其他UI遮挡,则存在较大可能是个错误。
在一个实施例中,ios中应用动态调试方法还包括:接收用户对任一展示元素的修改操作;存储修改操作;根据修改操作生成判断条件,根据判断条件对预设判断条件进行更新;扫描应用当前页面的所有展示元素,根据更新后的预设判断条件判断展示元素错误。
图10为本发明实施例中ios中应用动态调试方法的具体实例的流程图,如图10所示,在本实施例中,还可以动态学习用户的操作,当测试者给出一个修改并确定保存后(任何一个环节保存的修改),自动扫描是否存在相似的问题,如果则显示在调试窗口中供操作人员参考。
在一个实施例中,ios中应用动态调试方法还包括:接收对应用当前页面的点击操作;记录响应于点击操作的响应链;所述响应链包括响应展示元素的层级;将所述响应链以文字方式显示到调试窗口。
在本实施例中,操作者即测试人员可以选择记录当前点击的响应链,这时当操作者点击后会记录响应层级,从最开始的响应展示元素一层层记录,直到响应结束,将结果记录并以文字方式显示给操作者,由操作者进行评估该响应是否正确。
在一个实施例中,ios中应用动态调试方法还包括:在应用后台监听记录应用当前页面的运行日志;所述运行日志包括运行方法的执行顺序;接收用户通过调试窗口发来的运行日志显示请求;根据运行日志显示请求将运行日志显示到调试窗口。
在本实施例中,当应用当前页面运行的时候,存在页面的生命周期,生命周期中有多个运行方法,每个运行方法执行或调用是有顺序的。如一个页面运行,生命周期里有10个执行方法,是按:方法2,方法1,方法n……,这样的顺序执行。
图11为本发明实施例中ios中应用动态调试方法的具体实例的流程图,如图11所示,在本实施例中,展示当前页面的运行log,包含调用方法顺序,通过NSLog方法即ios中用于输出log的方法来输出的log。通过监听当前页面调用方法运行来排调用方法的顺序,并记录展示,以便了解代码运行逻辑。监听操作在页面加载时已经在后台进行监听并记录。当用户需要展示时取记录好的数据直接展示。
在一个实施例中,对修改操作进行保存,包括:将修改代码存储到应用本地文件中;在下次运行应用时从应用本地文件中调取修改代码,根据修改操作插入修改代码;存储修改的详细信息。
在本实施例中,若在根据修改操作对展示元素进行修改或根据修改操作插入修改代码,刷新当前页面之后,选择保存修改,则首先会将修改后的代码保存在应用本地文件中,并在下次运行应用时自动替换代码,并记录保存修改的详细位置。
在一个实施例中,ios中应用动态调试方法还包括:存储展示元素错误的详细信息;将测试结果发送至服务器;所述测试结果包括展示元素错误的详细信息、修改的详细信息。当判断展示元素错误后,用户确定问题并保存后也需要记录保存相应的展示元素错误的详细信息。
在本实施例中,将整个测试过程的记录进行整理,将测试结果整理成文件并上送服务器,提醒开发人员查看并修改,保存图10中自动学习后的判定逻辑。
图12为本发明实施例中ios中应用动态调试方法的具体实例的流程图,如图12所示,本发明实施例与图1、图2中的方案相比:
一、图1中现有调试技术基于Xcode,手机和Xcode要始终保持通信且无法断开,需要通过打断点或者log来调试;本发明实施例应用包一经生成安装到手机,就可以脱离Xcode进行调试。
二、图1中UI的层级需要借助Xcode中的查看层级的工具进行,图形化较难找到问题。测试人员无法只通过应用知道UI上的很多错误,只能看到显示错误。如,某个UI是白色的,背景色也是白色,则看不到UI,也不知道UI位置;本发明实施例在手机中列出当前所有UI的层级和包含关系,方便快速查找问题。
三、图1中方案发现问题后需修改代码并重新运行应用,耗时久且从头开始,会阻断测试流程,且测试人员强依赖开发人员来进行测试,遇到阻碍测试的功能无法修改,必须由开发人员修改后才能继续运行;本发明实施例动态修改部分代码,并刷新当前UI,改变代码后测试流程不中断。
四、图2中测试人员只能通过业务表现,及页面的文字来定位问题位置并记录汇报给开发人员修改;本发明实施例中测试人员可以定位到实际代码中类的名字,并给出具体的错误,如层级不对,点击范围过小,颜色值不对等,并给出相应的处理措施,自动上报开发者。
五、图1、图2及其他现有技术没有提供自动扫描UI错误的工具;本发明实施例自动判定可能存在的UI错误并展示给用户,且通过用户的操作可以不断的学习增加判定条件。
本发明实施例中还提供了一种ios中应用动态调试装置,如下面的实施例所述。由于该装置解决问题的原理与ios中应用动态调试方法相似,因此该装置的实施可以参见ios中应用动态调试方法的实施,重复之处不再赘述。
图13为本发明实施例中ios中应用动态调试装置的结构框图,如图13所示,ios中应用动态调试装置可以包括:
调试窗口模块1301,用于在应用当前页面上显示调试窗口;
获取模块1302,用于获取应用当前页面的所有展示元素;
标签模块1303,用于根据展示元素的类型给每个展示元素添加标签;
层级模块1304,用于根据每个展示元素的视图层级及每个展示元素之间的层级关系判断所有展示元素的层级;
显示模块1305,用于根据所有展示元素的层级将展示元素标签显示在调试窗口;
扫描模块1306,用于扫描应用当前页面的所有展示元素,根据预设判断条件判断展示元素错误;
显示模块1305,还用于将展示元素错误显示到调试窗口。
在一个实施例中,ios中应用动态调试装置还包括:
修改模块,用于接收对应用当前页面的任一展示元素的修改操作;根据修改操作类型判断修改操作是否能直接生效,若是,根据修改操作对展示元素进行修改;若否,根据修改操作插入修改代码,刷新当前页面。
在一个实施例中,ios中应用动态调试装置还包括:
响应链模块,用于接收对应用当前页面的点击操作;记录响应于点击操作的响应链;所述响应链包括响应展示元素的层级;
显示模块1305,还用于将所述响应链以文字方式显示到调试窗口。
在一个实施例中,ios中应用动态调试装置还包括:
监听模块,用于在应用后台监听记录应用当前页面的运行日志;所述运行日志包括运行方法的执行顺序;接收用户通过调试窗口发来的运行日志显示请求;
显示模块1305,还用于根据运行日志展示请求将运行日志显示到调试窗口。
在一个实施例中,ios中应用动态调试装置还包括:
操作模块,用于对修改操作进行重置或对修改操作进行保存。
在本实施例中,操作模块具体用于:将修改代码存储到应用本地文件中;在下次运行应用时从应用本地文件中调取修改代码,根据修改操作插入修改代码;存储修改的详细信息。
在一个实施例中,ios中应用动态调试装置还包括:
发送模块,用于存储展示元素错误的详细信息;将测试结果发送至服务器;所述测试结果包括展示元素错误的详细信息、修改的详细信息。
在一个实施例中,修改模块具体用于:接收对应用当前页面的任一展示元素的点击操作;根据所述展示元素的类型显示可操作选项;接收用户通过可操作选项发来的修改操作。
在一个实施例中,ios中应用动态调试装置还包括:
判断模块,用于接收用户对任一展示元素的修改操作;存储修改操作;根据修改操作生成判断条件,根据判断条件对预设判断条件进行更新;扫描应用当前页面的所有展示元素,根据更新后的预设判断条件判断展示元素错误。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述ios中应用动态调试方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述ios中应用动态调试方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述ios中应用动态调试方法。
本发明实施例与现有技术中脱离Xcode的调试方案相比,通过在应用当前页面上显示调试窗口;获取应用当前页面的所有展示元素;根据展示元素的类型给每个展示元素添加标签;根据每个展示元素的视图层级及每个展示元素之间的层级关系判断所有展示元素的层级;根据所有展示元素的层级将展示元素标签显示在调试窗口;扫描应用当前页面的所有展示元素,根据预设判断条件判断展示元素错误;将展示元素错误显示到调试窗口,可以实现脱离Xcode查看展示元素层级,自动判断展示元素错误,提高ios中应用动态调试效率。
本发明实施例中调试脱离Xcode,不依赖编译器;提供UI的动态修改,凸显信息;无需编译动态注入代码块,不阻断测试流程;自动判断UI中可能出现的错误并提醒测试人员,自动学习升级判定逻辑;导出详尽的包含修改方案的测试结果并输出给开发者,以便修改。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (21)
1.一种ios中应用动态调试方法,应用于ios的应用,其特征在于,包括:
在应用当前页面上显示调试窗口;
获取应用当前页面的所有展示元素;
根据展示元素的类型给每个展示元素添加标签;
根据每个展示元素的视图层级及每个展示元素之间的层级关系判断所有展示元素的层级;
根据所有展示元素的层级将展示元素标签显示在调试窗口;
扫描应用当前页面的所有展示元素,根据预设判断条件判断展示元素错误;
将展示元素错误显示到调试窗口。
2.如权利要求1所述的方法,其特征在于,还包括:
接收对应用当前页面的任一展示元素的修改操作;根据修改操作类型判断修改操作是否能直接生效,若是,根据修改操作对展示元素进行修改;若否,根据修改操作插入修改代码,刷新当前页面。
3.如权利要求1所述的方法,其特征在于,还包括:
接收对应用当前页面的点击操作;
记录响应于点击操作的响应链;所述响应链包括响应展示元素的层级;
将所述响应链以文字方式显示到调试窗口。
4.如权利要求1所述的方法,其特征在于,还包括:
在应用后台监听记录应用当前页面的运行日志;所述运行日志包括运行方法的执行顺序;
接收用户通过调试窗口发来的运行日志显示请求;
根据运行日志显示请求将运行日志显示到调试窗口。
5.如权利要求2所述的方法,其特征在于,在根据修改操作类型判断修改操作是否能直接生效,若是,根据修改操作对展示元素进行修改;若否,根据修改操作插入修改代码,刷新当前页面之后,还包括:
对修改操作进行重置或对修改操作进行保存。
6.如权利要求5所述的方法,其特征在于,对修改操作进行保存,包括:
将修改代码存储到应用本地文件中;
在下次运行应用时从应用本地文件中调取修改代码,根据修改操作插入修改代码;
存储修改的详细信息。
7.如权利要求1所述的方法,其特征在于,还包括:
存储展示元素错误的详细信息;
将测试结果发送至服务器;所述测试结果包括展示元素错误的详细信息、修改的详细信息。
8.如权利要求2所述的方法,其特征在于,接收对应用当前页面的任一展示元素的修改操作,包括:
接收对应用当前页面的任一展示元素的点击操作;
根据所述展示元素的类型显示可操作选项;
接收用户通过可操作选项发来的修改操作。
9.如权利要求1所述的方法,其特征在于,还包括:
接收用户对任一展示元素的修改操作;
存储修改操作;
根据修改操作生成判断条件,根据判断条件对预设判断条件进行更新;
扫描应用当前页面的所有展示元素,根据更新后的预设判断条件判断展示元素错误。
10.一种ios中应用动态调试装置,其特征在于,包括:
调试窗口模块,用于在应用当前页面上显示调试窗口;
获取模块,用于获取应用当前页面的所有展示元素;
标签模块,用于根据展示元素的类型给每个展示元素添加标签;
层级模块,用于根据每个展示元素的视图层级及每个展示元素之间的层级关系判断所有展示元素的层级;
显示模块,用于根据所有展示元素的层级将展示元素标签显示在调试窗口;
扫描模块,用于扫描应用当前页面的所有展示元素,根据预设判断条件判断展示元素错误;
显示模块,还用于将展示元素错误显示到调试窗口。
11.如权利要求10所述的装置,其特征在于,还包括:
修改模块,用于接收对应用当前页面的任一展示元素的修改操作;根据修改操作类型判断修改操作是否能直接生效,若是,根据修改操作对展示元素进行修改;若否,根据修改操作插入修改代码,刷新当前页面。
12.如权利要求10所述的装置,其特征在于,还包括:
响应链模块,用于接收对应用当前页面的点击操作;记录响应于点击操作的响应链;所述响应链包括响应展示元素的层级;
显示模块,还用于将所述响应链以文字方式显示到调试窗口。
13.如权利要求10所述的装置,其特征在于,还包括:
监听模块,用于在应用后台监听记录应用当前页面的运行日志;所述运行日志包括运行方法的执行顺序;
接收用户通过调试窗口发来的运行日志显示请求;
显示模块,还用于根据运行日志展示请求将运行日志显示到调试窗口。
14.如权利要求11所述的装置,其特征在于,还包括:
操作模块,用于对修改操作进行重置或对修改操作进行保存。
15.如权利要求14所述的装置,其特征在于,操作模块具体用于:将修改代码存储到应用本地文件中;在下次运行应用时从应用本地文件中调取修改代码,根据修改操作插入修改代码;存储修改的详细信息。
16.如权利要求10所述的装置,其特征在于,还包括:
发送模块,用于存储展示元素错误的详细信息;将测试结果发送至服务器;所述测试结果包括展示元素错误的详细信息、修改的详细信息。
17.如权利要求11所述的装置,其特征在于,修改模块具体用于:接收对应用当前页面的任一展示元素的点击操作;根据所述展示元素的类型显示可操作选项;接收用户通过可操作选项发来的修改操作。
18.如权利要求10所述的装置,其特征在于,还包括:
判断模块,用于接收用户对任一展示元素的修改操作;存储修改操作;根据修改操作生成判断条件,根据判断条件对预设判断条件进行更新;扫描应用当前页面的所有展示元素,根据更新后的预设判断条件判断展示元素错误。
19.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9任一项所述方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至9任一项所述方法。
21.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至9任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310769825.9A CN117076288A (zh) | 2023-06-27 | 2023-06-27 | ios中应用动态调试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310769825.9A CN117076288A (zh) | 2023-06-27 | 2023-06-27 | ios中应用动态调试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117076288A true CN117076288A (zh) | 2023-11-17 |
Family
ID=88714194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310769825.9A Pending CN117076288A (zh) | 2023-06-27 | 2023-06-27 | ios中应用动态调试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117076288A (zh) |
-
2023
- 2023-06-27 CN CN202310769825.9A patent/CN117076288A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8966449B2 (en) | Test case pattern matching | |
US9898387B2 (en) | Development tools for logging and analyzing software bugs | |
US7882495B2 (en) | Bounded program failure analysis and correction | |
US9740506B2 (en) | Automating interactions with software user interfaces | |
CN104391797A (zh) | Gui控件的识别方法和装置 | |
US9256512B1 (en) | Quality analysis for embedded software code | |
US10509719B2 (en) | Automatic regression identification | |
US11422917B2 (en) | Deriving software application dependency trees for white-box testing | |
CN110716874B (zh) | 一种国产操作系统硬件兼容性测试方法 | |
US20140229919A1 (en) | Semantic stack trace | |
US11436133B2 (en) | Comparable user interface object identifications | |
US20240220401A1 (en) | Continuous integration automated test systems and methods, electronic devices, and storage media | |
KR20090084905A (ko) | 그래픽 유저 인터페이스 테스팅을 위한 방법 및 시스템 | |
US20010028359A1 (en) | Test support apparatus and test support method for GUI system program | |
US20130179867A1 (en) | Program Code Analysis System | |
CN110765018A (zh) | 接口自动化测试方法及设备 | |
CN106776342B (zh) | 一种对移动应用的内存对象进行分析的方法和装置 | |
US10496379B2 (en) | Facilitated production of code for software testing | |
US20210405980A1 (en) | Long method autofix engine | |
US9880925B1 (en) | Collecting structured program code output | |
CN112579475A (zh) | 代码测试方法、装置、设备及可读存储介质 | |
US6427233B1 (en) | Method for addressing the dynamic windows | |
CN117076288A (zh) | ios中应用动态调试方法及装置 | |
CN113688031B (zh) | 一种基于字节码增强技术的测试定位方法 | |
CN114218104A (zh) | 一种基于at指令的移动终端测试方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |