
移动端测试专栏
文章平均质量分 81
展开讲解移动端测试的概念和方法,包括自动化测试框架appium详细讲解以及自动遍历测试工具以及CI/CD的集成。
爱喝草莓酸奶的乔巴
这个作者很懒,什么都没留下…
展开
-
移动端测试之App自动化测试使用的常见命令行命令
terminal中输入.bash_profile,如果你是第一次配置环境变量,可以使用“touch .bash_profile” 创建一个.bash_profile的隐藏配置文件.如果你是为编辑已存在的配置文件,则使用"open -e .bash_profile”命令;安装完成后配置.bash_profile,如果是zsh则配置.zshrc,在文件结尾加上export ANDROID_HOME="/usr/local/opt/android-sdk”bin目录下存放JDK用于开发的一些终端命令工具。原创 2023-07-11 15:43:55 · 143 阅读 · 0 评论 -
移动端测试之自动遍历回归测试
AppCrawler 命令或者 java -jar appcrawler.jar 皆表示用 jar -jar 命 令执行对应版本的 jar 包文件,比如 java -jar appcrawler-2.4.0-jar-with- dependencies.jar。当系统功能比较复杂的情况下,没有合理的测试分层反而想要在UI测试上cover全部的流程,这本来就是错误的想法,大量的UI自动化测试不仅会增加不稳定性,得不到理想测试结果的同时也导致自动化测试收益比大打折扣。自动遍历的需求,可控:可以定义遍历的路径;原创 2023-07-11 19:45:00 · 220 阅读 · 0 评论 -
移动端测试之app store和苹果证书体系
如果想要在真机上运行测试,则需要额外的一些配置,这是因为iOS对应用发布的要求比较严格,如果想把包安装在真机上的话,需要验证开发者签名信息才能完成。automationName:指定测试框架的名称,例如"XCUITest"。platformVersion:指定设备平台版本号,例如"14.5"。platformName:指定设备平台名称,iOS为"iOS"。deviceName:指定设备名称,例如"iPhone 12"。bundleId:指定要测试的应用程序的Bundle ID。原创 2023-07-11 14:18:23 · 159 阅读 · 0 评论 -
移动端测试之iOS测试工具体系
使用libimobiledevice可以在Mac OS X、Linux和Windows等操作系统上访问和管理iOS设备上的文件、应用程序、照片、音乐等数据,同时也可以进行应用程序的调试、安装和卸载等操作。Xcode提供了一个集成开发环境(IDE),包括代码编辑器、编译器、调试器、界面设计器等工具,可以帮助开发者快速、高效地开发应用程序。Instruments可以监控应用程序的CPU、内存、磁盘、网络、电量等方面的性能指标,并提供多种图表和工具,帮助开发者分析和优化应用程序的性能问题。原创 2023-07-11 11:09:43 · 342 阅读 · 0 评论 -
移动端测试之android自动化测试
Android NDK 提供了一组工具和库,可以帮助开发人员编写 C/C++ 代码,并将其编译为本机代码库,以便在 Android 应用程序中使用。怎么从native中切换到web呢?随着移动端应用的快速发展,涌现了很多除native外的其他应用,当然也出现了各种开发框架,如flutter和react native等,这些web框架改造成的框架可以实现将代码映射到native的相应功能上,得到了极大的便利,这样可以使用同一份代码编译为iOS和android的不同应用,节省了开发周期。原创 2023-07-10 17:38:28 · 159 阅读 · 0 评论 -
移动端测试之APP自动化测试框架 --- appium
Appium 提供了一系列 API 和工具,可以实现测试用例的编写、测试设备的管理、测试结果的记录和分析等功能,从而提高测试效率和测试质量。总的来说,Appium 是一款功能强大、灵活易用的自动化测试框架,可以帮助开发人员和测试人员快速、高效地测试移动应用程序的功能和界面,提高应用程序的质量和用户体验。可以使用该工具进行简单的用例录制,导出脚本的时候支持多种语言,java, python, js等。多种测试类型支持:Appium 支持多种测试类型,如功能测试、UI测试、性能测试等,可以满足不同测试需求。原创 2023-07-10 18:04:35 · 1221 阅读 · 0 评论 -
移动端测试之测试框架封装改造
这里使用的是by ID的操作,我们可以通过日志发现其实是有个转化的过程的,UIautomator并不是直接使用ID = XX进行查找的,而是由 ["id","tv.danmaku.bili:id/agree","380fc8dc-7d2e-4426-b326-0a4b97c37cf8"]的形式转成了{"strategy":"id","selector":"tv.danmaku.bili:id/agree","context":"","multiple":false}这样的形式。原创 2023-07-10 17:48:56 · 75 阅读 · 0 评论 -
移动端测试之page object模式自动化测试
recommend_text_locator = (AppiumBy.XPATH, '//android.view.ViewGroup[@content-desc="推荐,6之2,''标签"]/android.widget.TextView')原创 2023-07-10 18:00:11 · 67 阅读 · 0 评论 -
移动端测试之断言编写以及数据驱动
数据驱动测试(Data-driven test)是一种软件测试方法,其中测试数据以表格或电子表格格式存储。数据驱动测试允许测试人员输入一个单一的测试脚本,可以对表格中的所有测试数据执行测试,并期望在同一表格中的测试输出。它也被称为表驱动测试或参数化测试。尤其是针对于自动化测试,DDT几乎是所有自动化测试默认遵循的规范。当我们执行自动化测试的时候,都会遵照DDT的要求,尽量将测试中的可变数据抽象出来,变成单独的文件,这个文件的格式可以是csv、xslx,也可以是json、xml或者是database。原创 2023-07-10 11:23:29 · 117 阅读 · 0 评论 -
移动端测试之appium Android toast识别
toast是Android系统的系统行为,一般情况下不会是某个app自己编写的。所以它本来是不属于应用的,也就不会出现在page source中,但是为了能更好的对它进行自动化操作,appium会监听捕获toast并把它塞到page source中。理论上只要是toast所在的xpath路径就可以,不管是//这里截取了一段toast实现的关键代码,可以看到toast有个关键的属性是class name,被设置成了com.android.settings所以建议使用。那么toast怎么定位呢?原创 2023-07-07 17:47:51 · 226 阅读 · 0 评论 -
移动端测试之appium滑动操作详解
'new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text("目标按钮文本").instance(0));这里会自动向上或者向下滚动查找目标按钮,new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView这个方法是根据UIautomator的方法完成的。原创 2023-07-07 11:54:36 · 1556 阅读 · 0 评论 -
移动端测试之appium显示等待和隐式等待
sleep(时间/s) 它的原理就是线程等待,这个方法会强制休眠线程达到等待的效果。等待元素满足条件,而until_not就是等待元素不满足条件,这个判断条件是引入了from selenium.webdriver.support import expected_conditions,里面包含了丰富的判断条件,包括但是不限于标题、URL、元素可见性、元素是否被选中等。虽然sleep简单好用,但是如果整个测试中贯穿了这种粗暴的等待方式,那用例也会变得十分缓慢并且不够优雅,于是出现了隐式等待和显示等待。原创 2023-07-07 17:49:42 · 254 阅读 · 0 评论 -
移动端测试之appium元素定位方法
Android View Matcher 是一种基于 ViewMatcher 的元素定位方式,可以通过元素的属性、文本内容、子元素等多个条件来定位元素。通过 Android Data Matcher 进行元素定位,Android Data Matcher 是一种基于数据匹配的元素定位方式,可以通过元素的属性值、文本内容、子元素等多个条件来定位元素。元素在页面中其实是一个树状结构,xpath就是元素的绝对位置,这种方式可以定位没有其他标识或者标识不唯一的元素,//*代表了全部,是xpath的语法。原创 2023-07-06 23:20:29 · 623 阅读 · 0 评论 -
移动端测试之兼容性测试
使用simulator可以安装不同版本的系统,Genymotion可以启动对应的设备,然后使用STF测试平台统一对设备进行管理,这样在有自动化测试的条件下,就能实现对多台设备的共同测试,大大提高效率,关于STF平台的搭建以及测试用例的分发也会在后续的文章中详细介绍。如果项目上没有数据收集,那么首先根据项目的技术栈,根据SDK这些信息排除一部分本来就无法支持的老旧机型设备,然后再根据市场上的数据进行分析,这里的市场指的是手机市场,找到市面上占有率比较高的产品及其型号进行针对性的测试。原创 2023-07-06 16:47:44 · 681 阅读 · 0 评论 -
移动端测试之自动化测试理论
最上面是UI测试,也就是我们理解的E2E测试,这部分是执行最慢的且成本最高。到了UI层更多是模拟用户操作执行的,开发过程中免不了UI变更频繁这就会导致测试要经常进行维护,同时又因为测试框架本身不够稳定,也会造成用例的执行结果不可靠,误报或者错报bug,这些因素都是UI测试成本提高的重要原因。当然自动化测试并不能完全取代手动测试,在实践中往往是采用两者相结合的方式,测试人员使用自动化测试工具提高测试效率释放自己用在回归测试的带宽,从而有更多的时间精力进行探索性测试,保障项目的质量。原创 2023-07-06 16:13:16 · 136 阅读 · 0 评论 -
移动端测试之性能测试
K6,这是grafana开源的性能测试框架,由go语言编写,如果只是做简单的性能测试,使用起来非常的方便,同时框架内对HTTP接口的支持很好,可以复用接口测试代码,一举多得,缺点是对插件的支持比较差,如果需要mock很多测试数据的话比较恼火。测试目的:性能测试的目的是性能测试中重要的一环,根据不同的目的可以得到不同的性能测试概念,如果是想要进行稳定性测试,那就需要在合理的数据量下持续进行测试。QPS一般记录的是前端查询的sql,不包含插入、更新、删除操作,显然这样的指标用来描述系统整体的性能是不够全面的。原创 2023-07-05 22:53:40 · 574 阅读 · 0 评论 -
移动端测试之功能测试篇
编写测试报告:根据测试结果,编写测试报告,并记录测试过程中出现的问题和建议。移动设备和操作系统多样性:移动设备和操作系统的多样性可能会导致应用程序在不同设备和系统上的行为不同。网络连接和异步操作:移动应用程序通常需要与云服务或者其他应用程序进行交互,因此需要测试网络连接和异步操作的稳定性和可靠性。安全性和隐私:移动应用程序通常需要处理用户的敏感信息,因此需要测试安全性和隐私保护的有效性和可靠性。国际化和本地化:移动应用程序可能需要支持多语言和多地区,因此需要测试国际化和本地化的兼容性和可靠性。原创 2023-07-05 17:41:26 · 136 阅读 · 0 评论