Appium+Python实现简单的自动化登录测试的实现
作者:小小渔夫 发布时间:2021-09-13 05:49:14
标签:Appium,Python,自动化登录
前言
要想让手机app自动登录,也就是让app自己操作。所以在脚本中我们需要对app控件进行操作,那么我们需要获取控件的信息。可以使用..\android-sdk-windows\tools目录下的uiautomatorviewer.bat来获取控件相关信息
获取控件相关信息
启动uiautomatorviewer.bat
打开手机app,例如计算器,USB连接电脑,点击uiautomatorviewer左上角的安卓机器人按钮Devices Screenshot按钮刷新页面
定位元素:移动鼠标到需要定位的元素上,如数字7。右下角可以看到元素对应的属性
登录脚本实现
# coding=utf-8
__author__ = "Enoch"
# 这是一个app登录的测试
from appium import webdriver
from HTMLTestRunner import HTMLTestRunner
import unittest
import time
import warnings
class LoginTest(unittest.TestCase):
def setUp(self):
warnings.simplefilter("ignore", ResourceWarning)
desired_caps = {
'platformName': 'Android',
'deviceName': 'SGEEGEHIQ8I7CIKF',
'platformVersion': '6.0',
'appPackage': 'com.mengtuiapp.mall',
'appActivity': '.business.main.MainActivity'
}
self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
def testCase(self):
u"""登录"""
driver = self.driver
# time.sleep(2)
driver.find_element_by_id("bottom_nav").click()
time.sleep(2)
driver.find_element_by_name('使用其他方式登录').click()
driver.find_element_by_name('手机登录').click()
driver.find_element_by_id("username").send_keys("13100010001")
driver.find_element_by_name('获取验证码').send_keys("9876")
driver.find_element_by_id("btn").click()
driver.quit()
if __name__ == '__main__':
print("----------执行---------- ")
suite = unittest.TestSuite() # 构造测试集
suite.addTest(LoginTest('testCase'))
# 定义自动化报告目录
filename = "F:\\report.html"
fp = open(filename, 'wb')
runner = HTMLTestRunner(
stream=fp,
title=u'自动化测试报告',
description=u'这是登录测试的简单报告'
)
runner.run(suite)
fp.close()
来源:https://blog.csdn.net/cx243698/article/details/86240185
0
投稿
猜你喜欢
- 本文实例为大家分享了Python3 Tkinkter + SQLite 实现登录和注册界面,供大家参考,具体内容如下Ubuntu14 + P
- 引言接口测试就是数据的测试,在测试之前,需要准备好测试数据,而测试数据可以用数据库、excel、txt和csv方式,当然还有一种方式,那就是
- SQL Server 客户端配置工具用于配置客户端的工具(除基于DOS操作系统的客户端工具以外),以便使它们可以成功地和SQL Server
- 1.漏洞介绍在XHTML 1.0标准下,使用特殊构造的CSS样式,在Internet Explorer 7.0
- 本文实例讲述了Python基于pandas实现json格式转换成dataframe的方法。分享给大家供大家参考,具体如下:# -*- cod
- 以前在工作中遇到一个问题,当表单发送的数据量很大时,就会报错。查阅MSDN了解到,原因是微软对用Request.Form()可接收的最大数据
- 今天我们来一起看看Dreamweaver MX 2004在加密FTP 传送 方面的新功能。我们一般在做
- 本文实例讲述了Python全局变量用法。分享给大家供大家参考,具体如下:全局变量不符合参数传递的精神,所以,平时我很少使用,除非定义常量。今
- 困扰我很久问题终于在昨天被解决了。其实问题很简单<% =now %>老是显示12小时制,总是出现上午、下午。这个问题虽然很小,但
- 1. 查找图像中出现的人脸代码示例:#导入face_recognition模块import face_recognition#将j
- 一、urllib库是什么?urllib库用于操作网页 URL,并对网页的内容进行抓取处理urllib包 包含以下几个模块:urllib.re
- 有一个 Selenium 脚本(Python),它点击回复按钮使anonemail类出现。anonemail 类出现的时间各不相同。因此,我
- 在曾经的 淘宝UED 招聘 中有这样一道题目:“使用纯CSS实现未知尺寸的图片(但高宽都小于200px)在200px的正方形容器中水平和垂直
- 本文实例讲述了PHP实现根据数组某个键值大小进行排序的方法。分享给大家供大家参考,具体如下:问题:针对给定数组的某个键的键值进行排序解决方法
- 在Python代码中指定GPUimport osos.environ["CUDA_VISIBLE_DEVICES"] =
- 本文实例讲述了Python基础之条件控制操作。分享给大家供大家参考,具体如下:if 语句Python中if语句的一般形式如下所示:if co
- 在 Django 模板中遍历复杂数据结构的关键是句点字符 (.)。最好是用几个例子来说明一下。 比如,假设你要向模板传递一个 Python
- MySQL Order By keyword是用来给记录中的数据进行分类的。MySQL Order By Keyword根据关键词分类ORD
- CSS重设就是由于各种浏览器解释CSS样式的初始值有所不同,导致设计师在没有定义某个CSS属性时,不同的浏览器会按照自己的默认值来为没有定义
- 首先使用内置模块os.>>> import os>>> code = os.system("p