app实战运用

news/2024/11/27 18:48:12/文章来源:https://www.cnblogs.com/qq3074699547/p/18572899

一、打开模拟器
二、cmd中打开dos命令
adb connect 127.0.0.1:62001
三、安装测试包
adb install D:\app\baiduyuedu_3760.apk
四、打开appium

五、( 定位元素没有xpath的就删除原有uiautomatorviewer.bat,替换成新的)
开始定位,定位插件

案例1:

from appium import webdriver
from time import *
cs={
'platformName':'Android', #平台系统:Android or Ios
'deviceName':'OPPO R17', #设备名称
'platformVersion':'android-5.1W', #平台版本
'appPackage':'com.moji.mjweather', #包名
'appActivity':'com.moji.mjweather.LauncherActivity', #activity
'unicodeKeyboard': True, #使用unicode编码方式发送字符串 }
'resetKeyboard':True} #是将键盘隐藏起来
dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub",cs)
sleep(10)

dx.find_element_by_id("com.moji.mjweather:id/jc").click() #同意进入

dx.find_element_by_id("com.moji.mjweather:id/azz").send_keys("北京市")

查看参数数据:
(1)查看设备和版本
'platformName':'Android', #平台系统:Android or Ios
'deviceName':'SM­G9350', #设备名称
'platformVersion':'android­4.4W', #平台版本

(2)查看包名和活动路径名(命令:aapt d badging E:\dcs\two\app\mojibase.apk)
'appPackage':'com.baidu.yuedu', #包名
'appActivity':'com.baidu.yuedu.splash.SplashActivity', #activity 活动路径名


(3)
dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub")

from appium import webdriver
from time import sleep
desired_caps={
'platformName':'Android', #平台系统:Android or Ios
'deviceName':'SM­G9350', #设备名称
'platformVersion':'android­4.4W', #平台版本
'appPackage':'com.baidu.yuedu', #包名
'appActivity':'com.baidu.yuedu.splash.SplashActivity', #activity
'unicodeKeyboard': True, #使用unicode编码方式发送字符串 }
'resetKeyboard':True} #是将键盘隐藏起来
driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)

结合项目编写5条自动化用例

案例1

mport unittest #导入unittest 框架,python自带的框架
from appium import webdriver #导入appium模块
from time import * #导入时间
from HTMLTestRunner3_New import HTMLTestRunner
class appceshi(unittest.TestCase): #创建一个类,继承unittest.case的类

def  setUp(self) -> None:cs={'platformName':'Android',      #平台系统:Android or Ios'deviceName':'OPPO R17',     #设备名称'platformVersion':'android-7.1W',    #平台版本'appPackage':'com.baidu.yuedu',     #包名'appActivity':'com.baidu.yuedu.splash.SplashActivity',   #活动activity'unicodeKeyboard': True, #使用unicode编码方式发送字符串 }'resetKeyboard':True} #是将键盘隐藏起来self.dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub",cs)sleep(15)def tearDown(self) -> None:self.dx.quit()def  test1_jrts(self):#进入图书界面self.dx.find_element_by_xpath("//android.widget.TextView[@text='图书']").click()sleep(5)def test2_jryh(self):#进入用户界面self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()sleep(3)def test3_wdsc(self):#我的收藏界面self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()sleep(3)self.dx.find_element_by_id("com.baidu.yuedu:id/account_my_book_fav_title").click()sleep(3)def test4_wdzdxf(self):#我的自动续费self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()sleep(3)self.dx.find_element_by_id("com.baidu.yuedu:id/auto_buy_text").click()sleep(3)def test5_wdyl(self):#我的阅历self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()sleep(3)self.dx.find_element_by_id("com.baidu.yuedu:id/text_my_yueli").click()sleep(3)

if name == 'main':
# unittest.main() #调用所有的用例

lj=r"D:\pyCharm\zdhcs" #相对路径
d=unittest.TestLoader().discover(start_dir=lj,pattern="appceshi.py")
bglj=r"D:\pyCharm\zdhcs" #相对路径
new=strftime("%y-%m-%d %H-%M-%S")
file=lj+"/"+str(new)+"_uizdh.html"
f=open(file,"bw")
b=HTMLTestRunner(stream=f,description="自动化执行情况",title="ui自动化测试报告",tester="dcs"
)
b.run(d)

案例2:

import unittest
from appium import webdriver #导入appium模块
from time import * #导入时间

class App_case(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
pass
@classmethod
def tearDownClass(cls) -> None:
pass
def setUp(self) -> None:
# 连接参数 cs
cs = {
'platformName': 'Android', # 平台系统:Android or Ios
'deviceName': 'OPPO R17', # 设备名称
'platformVersion': 'android-5.1w', # 平台版本
'appPackage': 'com.baidu.yuedu', # 包名
'appActivity': 'com.baidu.yuedu.splash.SplashActivity', # 活动activity
'unicodeKeyboard': True, # 使用unicode编码方式发送字符串 }
'resetKeyboard': True} # 是将键盘隐藏起来
self.dx = webdriver.Remote("http://127.0.0.1:4723/wd/hub", cs)
sleep(10)
def tearDown(self) -> None:
sleep(4)
self.dx.quit() # 关闭网页
def test1_ts(self):#进入图书界面
self.dx.find_element_by_id("com.baidu.yuedu:id/righttitle").click()#点击图书
sleep(5)
def test2_gwc(self):#进入购物车界面并退出
self.test1_ts()
self.dx.find_element_by_id("com.baidu.yuedu:id/ball").click()#点击购物车
sleep(5)
self.dx.find_element_by_id("com.baidu.yuedu:id/backbutton").click()#点击退出
sleep(5)
def test3_ss(self):#搜索图书内容
self.dx.find_element_by_id("com.baidu.yuedu:id/search_account").click()#点击搜索标志
sleep(5)
self.dx.find_element_by_id("com.baidu.yuedu:id/full_text_search_bar_input").send_keys("大哥")#输入内容
sleep(5)
self.dx.find_element_by_id("com.baidu.yuedu:id/sug_item_name").click()#点击作者名称
sleep(5)
self.dx.find_element_by_id("com.baidu.yuedu:id/full_text_search_bar_search").click()#点击搜索
sleep(5)
self.dx.find_element_by_id("com.baidu.yuedu:id/full_text_search_bar_back").click()#点击退出
sleep(5)

def test4_sz(self): #进入设置界面self.dx.find_element_by_id("com.baidu.yuedu:id/title_account").click()#点击我的按钮sleep(5)self.dx.find_element_by_id("com.baidu.yuedu:id/new_my_setting").click()#点击设置sleep(5)def test5_wifi(self):  # 设置wifiself.test4_sz()self.dx.find_element_by_id("com.baidu.yuedu:id/rl_sync_wifi").click()#点击wifisleep(5)

if name == 'main':
unittest.main()

案例3:

from appium import webdriver #导入appium模块
from time import * #导入时间

连接参数 cs

cs={
'platformName':'Android', #平台系统:Android or Ios
'deviceName':'OPPO R17', #设备名称
'platformVersion':'android-5.1W', #平台版本
'appPackage':'com.taobao.taobao', #包名
'appActivity':'com.taobao.tao.welcome.Welcome', #活动activity
'unicodeKeyboard': True, #使用unicode编码方式发送字符串 }
'resetKeyboard':True} #将键盘隐藏起来
dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub",cs)
sleep(3)
dx.find_element_by_id("com.taobao.taobao:id/uik_mdButtonDefaultPositive").click() #点击同意
sleep(4)

充话费

dx.find_element_by_xpath("//android.widget.FrameLayout[@content-desc='充值']").click() #充值中心
sleep(3)
dx.find_element_by_xpath("//android.view.View[@text='话费流量']").click()
sleep(3)
dx.find_element_by_class_name("android.widget.EditText").send_keys("12345678901")
sleep(3)

跳转登录

dx.find_element_by_xpath("//android.widget.FrameLayout[@content-desc='购物车']").click()

sleep(3) #购物车

dx.find_element_by_id("com.taobao.taobao:id/aliuser_login_account_et").send_keys("admin") #账号

sleep(4)

dx.find_element_by_id("com.taobao.taobao:id/aliuser_login_password_et").send_keys("12345") #密码

sleep(3)

dx.find_element_by_id("com.taobao.taobao:id/aliuser_login_login_btn").click() #登录

sleep(3)

案例4:

from appium import webdriver #导入appium模块
from time import * #导入时间
from unittestreport import TestRunner
import unittest

连接参数 cs

class Abcd(unittest.TestCase):
def setUp(self) -> None:
cs={
'platformName':'Android', #平台系统:Android or Ios
'deviceName':'OPPO R17', #设备名称
'platformVersion':'android-5.1W', #平台版本
'appPackage':'com.baidu.yuedu', #包名
'appActivity':'com.baidu.yuedu.splash.SplashActivity', #活动activity
'unicodeKeyboard': True, #使用unicode编码方式发送字符串 }
'resetKeyboard':True} #是将键盘隐藏起来
self.dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub",cs)
sleep(12)
def tearDown(self) -> None:
sleep(4)
self.dx.quit()
def test1_tl(self):#进入书架
self.dx.find_element_by_xpath("//android.widget.TextView[@text='小说']").click()
def test2_ss(self):#搜索狼图腾书本
self.dx.find_element_by_id("com.baidu.yuedu:id/search_account").click()
sleep(3)
self.dx.find_element_by_id("com.baidu.yuedu:id/full_text_search_bar_input").send_keys("狼图腾")
def test3_qlhc(self):#清理缓存
self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()
self.dx.find_element_by_id("com.baidu.yuedu:id/new_my_setting").click()
self.dx.find_element_by_id("com.baidu.yuedu:id/new_my_clean_cache").click()
def test4_djqd(self):#点击签到
self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()
self.dx.find_element_by_xpath("//android.widget.TextView[@text='签到']").click()
def test5_wdgm(self):#我的购买
self.dx.find_element_by_id("com.baidu.yuedu:id/title_left_account").click()
self.dx.find_element_by_xpath("//android.widget.TextView[@text='我的购买']").click()
sleep(2)
self.dx.find_element_by_id("com.baidu.yuedu:id/positive").click()
if name == 'main':
unittest.main()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/842431.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WebRTC 创建者刚加入了 OpenAI,他是如何思考语音 AI 的未来?

WebRTC 的早期创建者之一,Fixie.ai 联合创始人兼 CTO Justin Uberti 近日宣布加入 OpenAI,领导实时 AI (Real-Time AI)项目的开发。Uberti 在 2011 年于 Google 参与创建并领导了 WebRTC 项目,并推动其成为 W3C 和 IETF 标准。从最早参与 AOL Instant Messenger(AIM)开始…

win10 查看 特定网络 详细信息

使用以下命令查看某个网络的详细信息(替换<NetworkName>为实际的网络名称):TEXTnetsh wlan show profile name="<NetworkName>" key=clear

#20222309 2024-2025-1 《网络与系统攻防技术》实验五实验报告

1.实验内容 (1)从www.besti.edu.cn、baidu.com、sina.com.cn中选择一个DNS域名进行查询,获取如下信息: DNS注册人及联系方式 该域名对应IP地址 IP地址注册人及联系方式 IP地址所在国家、城市和具体地理位置 PS:使用whois、dig、nslookup、traceroute、以及各类在线和离线工…

web js 逆向小记, x-sourcemap特性

最近在搞事情 发现了一个神奇的现象,js能正确执行,但是当准备调试时,显示无法加载。 这个刷新的我的认知。如图: 这些方法都能正确执行,当你准备调试这个go方法时,显示无法加载: ================================= 搞了这么久的开发和逆向,这还是第一次遇到, 真牛逼…

Qt中字节与浮点数互转

1 十六进制字节数转浮点数 注意:使用此函数时传入的参数格式 例如QString str1 = "068400040002847D";字符串中间没有空格 float MainWindow::hexBytesToFloat(const QString &hexString) {QByteArray byteArray; // 创建一个QByteArray对象byteArrayfor (int i…

H5-4 图片路径详解

绝对路径 相对路径 网络路径 1、绝对路径:电脑的盘符储存与访问的具体地址D:\qianduan\qianduan1.jpg <img src="D:\qianduan\qianduan1.jpg" > 2、相对路径:两者相对的关系,两者在同一路径下可以访问子集关系: /父级关系:../同级关系:./ (可以省略) …

数字孪生在智慧消防中能够发挥什么作用?

近年来,数字孪生技术在智慧城市的多个领域得到广泛应用,而在智慧消防中,其独特的优势更是为消防工作注入了强劲动力。通过数字孪生技术,消防管理可以从传统的事后应对转变为全面的事前预防、实时监测和精准指挥,为城市安全带来革命性的提升。 实现消防设施全景监控 数字孪…

SpringBoot 如何解析配置文件中的list?

1.情景展示在配置文件当中,我们是可以使用list来设置参数对应的参数值的(也就是:参数值可以是list)。 YML文件如上图所示,在配置文件当中(如:Yml) ,我们是可以直接使用list。 其格式就是: 下划线➕空格,后面跟数组元素即可,一行就代表一个元素。 properties文件 如…

一个不错的软件版本命名规范!

之前写了一篇如何自动生成版本号的文章, 《让你的C程序,自动打印版本信息》 初衷是让自己的程序在运行时自动打印与版本相关的信息, 避免测试时因为版本信息不确定导致的一些功能对应不上去的问题, 当时留了一个坑,写一篇关于如何设计一个相对规范的版本号的文章, 现在把…

css 三角形

.threes{position: relative;}.threes::before {position: absolute;top: -6rpx;right: -50rpx;content: "";display: inline-block;width: 0;height: 0;border-left: 10rpx solid transparent; /* 调整这个值以改变三角形的大小 */border-bottom: 10rpx solid #1780…

直播预约 | 数据驱动:直击离散制造业数智化转型实践

11月28日,KaiwuDB 携手施耐德电气全球供应链中国及中工互联联合发起《数据驱动:直击离散制造业数智化转型实践》主题直播,欢迎观看。11月28日,KaiwuDB 携手施耐德电气全球供应链中国及中工互联联合发起《数据驱动:直击离散制造业数智化转型实践》主题直播,针对离散制造业…

隔行/列设置背景色

1. 概述编辑1.1 问题描述 通过根据条件显示不同背景色可以实现满足某条件时,改变行/列的背景色,那么如果表格的行与行之间需要显示为不同的颜色,该如何实现呢? 1.2 解决思路 通过在「条件属性>背景」中使用公式 row() 获取行号(公式 col() 获取列号),再通过计算实现。…