【App自动化测试】(十三)以雪球财经app为例的移动端自动化测试练习

2024-02-27 22:40

本文主要是介绍【App自动化测试】(十三)以雪球财经app为例的移动端自动化测试练习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 1. 产品分析
  • 2. 实战练习思路
  • 3. 用例设计
  • 4.构造PO模型,编写测试用例
    • 4.1 模型框架
    • 4.2 目录结构
    • 4.3 搭建框架
  • 5. 优化用例
    • 5.1 优化内容
    • 5.2 代码
  • 6. 优化测试框架
    • 6.1 优化内容
    • 6.2 代码
      • 6.2.1 目录结构
      • 6.2.2 实现代码
    • 6.3 运行结果展示
      • 6.3.1 测试结果
      • 6.3.2 异常截图
      • 6.3.3 日志记录
      • 6.3.4 allure报告


前言
本文为在霍格沃兹测试开发学社中学习到的一些技术写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~ 😘

1. 产品分析

  • 被测应用:雪球 App

  • 雪球 App 介绍

    • 雪球 app 是一款免费版,非常实用的股票平台,提供热点资讯内容和实时行情,提供了证券交流交易,公募、理财服务
    • 雪球 app 功能包括搜索股票,查看行情,交易,浏览热门文章,发帖,登录,注册,等功能

2. 实战练习思路

在这里插入图片描述

3. 用例设计

搜索场景

  • 打开【雪球】应用首页
  • 点击搜索框,进入搜索页面
  • 向搜索输入框中输入【alibaba】
  • 点击搜索结果中的【阿里巴巴】
  • 切换到 tab 的【股票】
  • 找到 股票【阿里巴巴】的股票价格 price
  • 判断 price 在 110 上下 10%浮动

4.构造PO模型,编写测试用例

4.1 模型框架

PO模型分为三层:

  • 具体业务层
  • 公共业务层
  • 和业务无关的公共方法层

在这里插入图片描述

4.2 目录结构

base/ base_page.py  #基类xueqiu_app.py # app启动相关
page/main_page.py  #PO-主页search_page.py #PO-搜索页search_result_page.py #PO-搜索结果也cases/test_xueqiu.py

4.3 搭建框架

先把框架搭好,写好测试用例,填充业务逻辑,保证用例可以正常跑通。

  1. base
  • base_page.py(实现暂时为空)

  • xueqiu_app.py

from appium import webdriver
from appiumpo.page.main_page import MainPageclass XueQiuApp:""" 放置雪球APP相关的操作:start 启动;restart 重启;stop 停止"""def start(self):desired_caps = {}desired_caps['platformName'] = 'Android'desired_caps['platformVersion'] = '6.0'desired_caps['deviceName'] = '127.0.0.1:7555'desired_caps['appPackage'] = 'com.xueqiu.android'desired_caps['appActivity'] = '.view.WelcomeActivityAlias'desired_caps['noReset'] = 'true'self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)self.driver.implicitly_wait(10)return selfdef restart(self):passdef stop(self):passdef goto_main(self):#完成切换到到PO的功能return MainPage(self.driver)
  1. page
  • main_page.py
from appium.webdriver.common.appiumby import AppiumBy
from appium.webdriver.webdriver import WebDriver
from appiumpo.page.search_page import SearchPageclass MainPage:def __init__(self,driver:WebDriver):self.driver=driverdef click_search(self):#点击搜索框self.driver.find_element(AppiumBy.ID,"com.xueqiu.android:id/tv_search").click()return SearchPage(self.driver)
  • search_page.py
from appium.webdriver.common.appiumby import AppiumBy
from appium.webdriver.webdriver import WebDriver
from appiumpo.page.search_result_page import SearchResultPageclass SearchPage:def __init__(self, driver:WebDriver):self.driver = driverdef input_searchcontent(self,searchkeys):# 输入搜索内容self.driver.find_element(AppiumBy.ID,"com.xueqiu.android:id/search_input_text").send_keys(searchkeys)return selfdef click_searchresult(self,text):self.driver.find_element(AppiumBy.XPATH, f"//*[@text='{text}']").click()return SearchResultPage(self.driver)
  • search_result_page.py
from appium.webdriver.common.appiumby import AppiumBy
from appium.webdriver.webdriver import WebDriverclass SearchResultPage:def __init__(self, driver: WebDriver):self.driver = driverdef goto_stock_tab(self):#点击股票self.driver.find_element(AppiumBy.XPATH,"//*[@text='股票']").click()return selfdef get_price(self):#找到对应股票的价格,返回股票价格current_price=self.driver.find_element(AppiumBy.XPATH,"//*[@text='BABA']/../../..//*[@resource-id='com.xueqiu.android:id/current_price']").textreturn float(current_price)
  1. cases
  • test_xueqiu.py
#使用harmcrest 要导入全部内容,要不然有一些函数会报错
from hamcrest import *
from appiumpo.base.xueqiu_app import XueQiuAppclass TestXueQiu:def setup(self):

这篇关于【App自动化测试】(十三)以雪球财经app为例的移动端自动化测试练习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/753790

相关文章

Python实现自动化接收与处理手机验证码

《Python实现自动化接收与处理手机验证码》在移动互联网时代,短信验证码已成为身份验证、账号注册等环节的重要安全手段,本文将介绍如何利用Python实现验证码的自动接收,识别与转发,需要的可以参考下... 目录引言一、准备工作1.1 硬件与软件需求1.2 环境配置二、核心功能实现2.1 短信监听与获取2.

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

Python实现自动化表单填写功能

《Python实现自动化表单填写功能》在Python中,自动化表单填写可以通过多种库和工具实现,本文将详细介绍常用的自动化表单处理工具,并对它们进行横向比较,可根据需求选择合适的工具,感兴趣的小伙伴跟... 目录1. Selenium简介适用场景示例代码优点缺点2. Playwright简介适用场景示例代码

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Qt把文件夹从A移动到B的实现示例

《Qt把文件夹从A移动到B的实现示例》本文主要介绍了Qt把文件夹从A移动到B的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录如何移动一个文件? 如何移动文件夹(包含里面的全部内容):如何删除文件夹:QT 文件复制,移动(

Python自动化处理手机验证码

《Python自动化处理手机验证码》手机验证码是一种常见的身份验证手段,广泛应用于用户注册、登录、交易确认等场景,下面我们来看看如何使用Python自动化处理手机验证码吧... 目录一、获取手机验证码1.1 通过短信接收验证码1.2 使用第三方短信接收服务1.3 使用ADB读取手机短信1.4 通过API获取

Rust中的Drop特性之解读自动化资源清理的魔法

《Rust中的Drop特性之解读自动化资源清理的魔法》Rust通过Drop特性实现了自动清理机制,确保资源在对象超出作用域时自动释放,避免了手动管理资源时可能出现的内存泄漏或双重释放问题,智能指针如B... 目录自动清理机制:Rust 的析构函数提前释放资源:std::mem::drop android的妙

Python自动化Office文档处理全攻略

《Python自动化Office文档处理全攻略》在日常办公中,处理Word、Excel和PDF等Office文档是再常见不过的任务,手动操作这些文档不仅耗时耗力,还容易出错,幸运的是,Python提供... 目录一、自动化处理Word文档1. 安装python-docx库2. 读取Word文档内容3. 修改

Python重命名文件并移动到对应文件夹

《Python重命名文件并移动到对应文件夹》在日常的文件管理和处理过程中,我们可能会遇到需要将文件整理到不同文件夹中的需求,下面我们就来看看如何使用Python实现重命名文件并移动到对应文件夹吧... 目录检查并删除空文件夹1. 基本需求2. 实现代码解析3. 代码解释4. 代码执行结果5. 总结方法补充在