(原文:https://www.cnblogs.com/fancy0158/p/10047906.html) TestSuite套件可以添加很多个用例后运行,但是每个用例都需要调用addTest()函数。当测试用例很多时,需要把用例拆分,写到不同的.py文件中。 一个简单的测试项目目录如下:测试用例放在同一个文件夹或不同目录下,此时可以使用unittest的TestLoader类加载测试用例。TestLoader类负责根据各种标准加载测试用例,并将它们返回给测试套件。unittest提供了共享的defaultT...
前言: Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用。一、环境配置 1、安装Node.js https://nodejs.org/ 2、安装Appium http://appium.io/ 3、安装Android SDK http://tools.android-studio.org/index.php/sdk 4、安装Python-client pip3 install Appium-Python-Client 5、安装Appium-client npm install wd 最后,打开命令行,输入“appium-doctor”命令,如果出现以下提示...
目前网上有大量Appium+Python的APP自动化测试的资料,这里我只是记录一下自己安装的过程,好让自己以后忘记的时候再翻起来看看,快速上手,不想再像之前那样踩坑。 注:因为之前玩过Robot Framework+Selenium2,所以对自动化测试算是有一定的认识。 废话不多说,下面就记录一下整个环境的安装过程(会安装的可以略过)。 一、环境准备: 1.准备JDK,推荐安装JDK1.8(jdk_8.0.1310.11_64.exe,jdk可以去官网下载,也可以在我的百度云...
一,为什么是Appium借一张图: 1.1 Appium优点 l 开源 l 跨架构:NativeApp、Hybird App、Web App l 跨设备:Android、iOS、Firefox OS l 不依赖源码 l 使用任何WebDriver 兼容的语言来编写测试用例。比如 Java, Objective-C, JavaScript with Node.js, PHP, Python, Ruby, C#, Clojure, 或者 Perl. l 不需要重新编译APP 1.2 Appium理念 l 你无需为了自动化,而重新编译或者修改你的应用。 l 你不必局限于某种语...
环境准备好了,还得有一步就可以正式开工了,那就是如何获取要测试的apk及对应的activity?可以提供有以下几个方法: 方法一:让开发人员提供。 这也是最快速的方法,但问题是有时开发人员在修改bug不一定会有时间理会你。遇到此情况还是长有的,那宝宝就要想其他方法了自己解决啦。那就试试其他方法吧。 方法二:查看原代码。 前提是你能拿到原代码,并且能看懂原代码。 方法三:根据包名adb shell dumpsys 命令查找。 如下图例命令...
appium工作原理 appium 在android端工作流client端也就是我们 test script是我们的webdriver测试脚本。中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似, Appium?持标准的WebDriver JSONWireProtocol。在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调用对应的框架响应操作。appium server会把请求转发给中间件Boot...
前言 做app自动化测试比较繁琐的一点是每次都要去启动appium服务,然后跑完之后关闭appium服务。虽然在cmd里面可以使用命令行的appium服务版本,打开cmd启动还是不太方便 不能做到真正自动化开启和关闭。为了解决这个问题,可以用python写个脚本去开启和关闭appium服务 启动appium服务 appium的命令行启动方式参考这篇【appium+python自动化59-appium命令行参数】 python执行cmd指令,可以使用os.system()方法,为了防止重复启动服...
unittest是python的测试框架,和junit相似。 test.py import unittestclass Apptest(unittest.TestCase):def setUp(self):print("prepare")def tearDown(self):print("cleanup")def test_c(self):print("testc")def test_a(self):print("test a")def test_b(self):print("test b") if __name__=="__main__":unittest.main()引入unittest test2.py import unittest from appium import webdriver from time import sleepclass Appte...
from appium import webdriver from selenium.common.exceptions import NoSuchElementException desired_caps={} desired_caps[platformName]=Android desired_caps[deviceName]=127.0.0.1:62025 desired_caps[platforVersion]=5.1.1 desired_caps[app]=rC:\Users\Shuqing\Desktop\kaoyan3.1.0.apk desired_caps[appPackage]=com.tal.kaoyan desired_caps[appActivity]=com.tal.kaoyan.ui.activity.SplashActivity desired_c...
写这个东西也是自己喜欢研究些自动化的东西,以下全是自己的经验所得,由于开源的软件对于各版本以及操作系统要求很高,会经常碰到一些不兼容的问题,这个都属于正常的,换版本就对了。 本人的环境搭建都是在win10 64位上搭建的 1、环境准备 1.jdk1.8.0 (64位) 2.android-sdk_r24.4.1-windows 3.python:2.7(3.6也可以) 4.appium:1.4.16.1 5.Node.js:node-v8.11.4-x64 6.Appium-Python-Client ...
先分享一个appium参数 参数 默认值 含义-U,--udid null 连接物理设备的唯一设备标识符-a,--address 0.0.0.0 监听的ip地址-p,--port 4723 监听的端口-bp,--bootstrap-port 4724 连接Android设备的端口号(Android-only)-g,--log null 将日志输出到指定文件--no-reset false session之间不重置应用状态--session-override false 允许session被覆盖(冲突的话)--app-activity null 打开Android应用时,启动的Activity...
appium更新uiautomator后可以获取tost了,大家都尝试,课程中也讲解了,但是这些跑的时候都在单机上,当我们多机并发的时候会出现一个端口问题,因为我们appium最后会调用uiautomator2,但是多个机器的时候只会有一个机器会正常运行。这个就是因为uiautomator2端口占用问题,这个只需要在我们生成端口的时候,在启动配置里面增加一个参数就可以了: "platformName": "Android", "deviceName": devices, "platformVersion": 8.0, "a...