【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实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Python使用python-pptx自动化操作和生成PPT

《Python使用python-pptx自动化操作和生成PPT》这篇文章主要为大家详细介绍了如何使用python-pptx库实现PPT自动化,并提供实用的代码示例和应用场景,感兴趣的小伙伴可以跟随小编... 目录使用python-pptx操作PPT文档安装python-pptx基础概念创建新的PPT文档查看

基于Python编写自动化邮件发送程序(进阶版)

《基于Python编写自动化邮件发送程序(进阶版)》在数字化时代,自动化邮件发送功能已成为企业和个人提升工作效率的重要工具,本文将使用Python编写一个简单的自动化邮件发送程序,希望对大家有所帮助... 目录理解SMTP协议基础配置开发环境构建邮件发送函数核心逻辑实现完整发送流程添加附件支持功能实现htm

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

Python调用LibreOffice处理自动化文档的完整指南

《Python调用LibreOffice处理自动化文档的完整指南》在数字化转型的浪潮中,文档处理自动化已成为提升效率的关键,LibreOffice作为开源办公软件的佼佼者,其命令行功能结合Python... 目录引言一、环境搭建:三步构建自动化基石1. 安装LibreOffice与python2. 验证安装

把Python列表中的元素移动到开头的三种方法

《把Python列表中的元素移动到开头的三种方法》在Python编程中,我们经常需要对列表(list)进行操作,有时,我们希望将列表中的某个元素移动到最前面,使其成为第一项,本文给大家介绍了把Pyth... 目录一、查找删除插入法1. 找到元素的索引2. 移除元素3. 插入到列表开头二、使用列表切片(Lis

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶