appium

Appium测试Android混合应用时,第二次切换到WebView时的定位问题

北城余情 提交于 2020-08-09 06:52:15
在混合应用中,经常会遇到切换Webview之后,页面还停留在上个页面的问题,当前页面的元素怎么也找不到,网上有说杀掉chromedriver进程来解决,杀进程方式适合Appium和代码在一台机器的情况,如果代码在一台机器上,appium安装在另一台机器上,呵呵,这样杀进程也是解决不了的。既然混合应用切换到webview下,应该和处理web页面一样的,直接使用driver.get(url)方法,url 就是你要跳转到的页面,需要跳转的页面可以通过chrome inspector 找到,或者去问开发。 下面这种方式是转自别人的一遍文章,改了源码,但是如果使用的是客户端的Appium,恐怕只改源码是不能生效的,需要通过编译才能生效。如果使用的是npm 安装的appium,改源码编译后是可以生效的。貌似最新的appium 的npm安装包已经不存在webview缓存的问题了。 在用Appium测试Android混合应用时,当程序第一次切换到WebView时,可以正常进行自动化测试。可是当程序第二次切换到WebView时,Appium会自动找到到第一次打开的Html页面,那么这时Appium就无法定位我们第二次打开的Html页面中的元素。 最近在做Android自动化测试开发,遇到了一个对我这种初学者来说非常棘手的难题,网上怎么找也找不到解决方案,不过最终还是被自己瞎猫碰到了死耗子~

怎么转型自动化测试?——让转型自动化测试不是空喊!

徘徊边缘 提交于 2020-08-09 06:45:43
少部分从事软件自动化测试,会接触底层服务端、API 、Web、APP、H5 等等,对自动化有了解。 想做自动化,首先得了解一下自动化测试的一些常见问题。 也是面试时,必问的一些问题(这么简单的面试问题,你却答的一塌糊涂),如果对自动化完全不了解,每天在那嚷嚷要做自动化,都是空喊。   自动化测试一些问题 一、什么是自动化测试? 自动化测试,顾名思义,自动完成测试工作。 通过一些自动化测试工具或自己造轮子实现模拟之前人工点点/写写的工作并验证其结果完成整个测试过程,这样的测试过程,便是自动化测试。 自动化测试,看上去很美,感觉好像是第一次工业革命,它开创了以机器代替手工劳动的时代,实则不然。 因为每一个自动化测试的case都是从手工测试做起的,如果没有手工测试的基础,是没法进行自动化测试。 二、为什么要进行自动化测试 为什么进行自动化测试,答案要从自动测试的收益和人肉测试的成本说起: 1)自动化测试节约成本(根据项目) 毕竟自动化测试确实解放了一批人力(人力成本才是IT公司大的成本),可以让机器没日没夜的执行一些重复劳动. 2)有些测试项目手工很难实现(手工成本较高) 比如12306的压力测试、负载测试,同时找那么多人去测试不现实可以通过机器去模拟. 3)项目质量流程需要 比如版本管理需要build verify,以保证check in的code不会影响版本库。 类似于smoke

使用TestProject Python SDK创建移动Appium测试

让人想犯罪 __ 提交于 2020-08-09 03:04:26
使用模拟器在Android上运行移动网络测试 我将假设您已经下载了Python SDK,已经配置了代理和开发人员令牌,并且代理正在运行。如果没有,您可以在这篇 文章 中阅读如何做。另外,我将假设您已经创建并启动了运行Android的模拟器。 让我们以这个测试为例: import pytest from appium import webdriver from tests.pageobjects.web import LoginPage, ProfilePage @pytest.fixture def driver () : desired_capabilities = { "udid" : "emulator-5554" , "browserName" : "chrome" , "platformName" : "Android" , } driver = webdriver.Remote(desired_capabilities=desired_capabilities) yield driver driver.quit() def test_example_on_chrome_on_android (driver) : LoginPage(driver).open().login_as( "John Smith" , "12345" ) profile_page =

appium---多进程启动app(多设备启动app)

╄→尐↘猪︶ㄣ 提交于 2020-08-09 02:54:18
  上一篇简单的介绍了如何通过多线程进行启动app,但是后面发现了一个问题,就是app操作必须要等到一台结束后,下一台才能进行任务,那么有没有办法让他们同时运行呢?这个时候我们可以了解下多进程。跳转门: appium---多线程启动app(多台设备启动app) 进程和线程的区别 线程:计算机的执行单位以线程为单位。计算机的最小可执行是线程。。线程是可执行的基本单位,是可被调度的基本单位。线程不可以自己独立拥有资源。线程的执行,必须依赖于所属进程中的资源。。 进程:进程是资源分配的基本单位,进程中必须至少应该有一个线程 多进程启动app 继续上一篇文章的内容,多进程启动app,在以前的代码基础上进行修改线程部分 通过把启动appium的方法通过多进程的方法进行启动。 def main(self): ''' 多进程启动 ''' multi_list = [] for i in range(2 ): appium_server = multiprocessing.Process(target= self.get_commad) multi_list.append(appium_server) for j in multi_list: j.start() for j in multi_list: j.join() 测试用例 上面通过多进程的方法进行了实现了同事启动appium

Android自动化测试框架必用工具

淺唱寂寞╮ 提交于 2020-08-09 01:48:12
Monkey Monkey1是Android SDK自带的测试工具,是一个命令行工具,可以运行在模拟器里或实际设备中。可以运行在模拟器中或者实际设备中,它向系统发送伪随机的用户事件流(如按键输入,触摸屏输入,手势输入等),实现对正在开发的应用程序进行压力测试。由于测试事件和数据都是随机的,不能自定义,所以有很大的局限性。 编写语言:命令行 运行环境:使用adb连接PC运行 测试对象:Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。主要测试客户端应用的稳定性,健壮性 测试限制:主要是做随机模拟用户操作移动端的操作 例子: adb shell monkey -p com.android.calendar -v 500 这样就开始乱点日历应用了。 加入我们,642830685,群。领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑 MonkeyRunner MonkeyRunner2是Android SDK提供的测试工具。严格意义上来说MonkeyRunner其实是一个Api工具包,比Monkey强大,可以编写测试脚本来自定义数据、事件。缺点是脚本(jython(java语言))用Python(Python(C语言))来写

2020自动化测试岗位需求的7项必备技能(更新版)

 ̄綄美尐妖づ 提交于 2020-08-08 12:58:23
随着敏捷和DevOps等新时代项目开发方法逐渐取代旧的瀑布模型,测试需求在业界不断增长。测试人员现在正在与开发人员一起工作,自动化测试在许多方面极大地取代了手动测试。如果您是自动化测试领域的新手,刚雇用您的组织将期望您快速,开箱即用,并能够检测到错误或提供没人想到的解决方案。但是,仅凭测试的基础知识,您将如何成为一名成功的,不同于前任的测试自动化工程师?成为2020年成功的自动化测试员的技能是什么?让我们找出答案。 一、自动化测试员技能——编程语言   当我开始担任手动测试人员时,我不喜欢编码。但是,当我逐渐进入自动化领域时,对我来说很清楚,如果没有对编程语言的一些基本了解,就无法编写逻辑自动化测试脚本。   对编程有一点了解,不仅可以简化那些自动化脚本,还可以帮助您改善与开发人员的沟通。不仅如此,一旦单元测试完成,您还可以参与深入的功能测试。现在,要获得自动化测试人员的#1技能,有两个不同的方面,需要多少编程知识取决于您的角色以及几年后您在行业中的位置。方面是: 设计框架   您需要对Python,Java,Perl,SQL,XML以及HTML和CSS具有透彻的理解和编码技能。虽然,您应该精通哪种语言取决于项目中开发人员使用的编程语言。例如,如果项目在Ruby上,则您至少应具有Ruby基础知识的基础知识。以下是对测试人员有用的顶级编程语言。 创建测试脚本   在此阶段

Appium + Python App自动化第一个脚本

给你一囗甜甜゛ 提交于 2020-08-07 07:02:36
今天跟大家讲解一个Appium和Python App自动化的脚本。 【1】打开你的夜神模拟器(或者连接你的手机) 【2】打开桌面的Appium 【3】下载你要测的App的apk文件,放到桌面 【4】拖动你的apk安装包到夜神模拟器里,然后模拟器会提示你安装。安装。原来的apk文件先不要删 【5】进入cmd 【6】先输入adb devices,查看设备号(后面会用到) 【7】查看apk文件的属性,复制它的路径比如船长这里用的是Tencent 新闻客户端,先复制位置 1: 【8】回到cmd里,输入如下命令: aapt dump badging 粘贴你复制的路径1 / 粘贴你复制的路径 2,回车: 这里就看到安装包的内容了,很多都是要用到的: 【9】进入你的pycharm,写代码: # coding: utf-8from appium import webdriverfrom time import sleep desired_caps = { 'platformName': 'Android', 'deviceName': '127.0.0.1:62001', 'platformVersion': '23', 'appPackage': 'com.tencent.news', 'appActivity': 'com.tencent.news.activity

How to skip Chrome Welcome screen, every time I run Appium, Ruby test

一曲冷凌霜 提交于 2020-08-07 05:59:29
问题 I'm new to Appium. So my requirement is to run web driver test through Appium in simulator but when I run every time chrome always shows the welcome screen which I have to manually skip to see the test result and take screen shots. How to skip the chrome welcome screen? Below is my settings Appium 1.5.3 Mobile platform/version under test: Android 7.1 Real device or emulator/simulator: Emulator This is what I have in my env.rb file begin system 'adb uninstall io.appium.settings' system 'adb

To Do List

随声附和 提交于 2020-08-06 19:48:07
list,string,tuple,dictionary之间的转换 https://blog.csdn.net/YQ1228/article/details/78542035 https://www.cnblogs.com/yigui/p/9500575.html robotFrameWork https://www.cnblogs.com/yigui/p/9218035.html Appium中的校验 https://www.cnblogs.com/yigui/p/7651918.html XML工具读取 multipart/form-data 文件上传表单中 传递参数无法获取的原因! 1.什么是multipart/form-data 首先我们需要明白在html中的enctype属性, enctype:规定了form表单在发送到服务器时候编码方式。他有如下的三个值。 ①application/x-www-form-urlencoded。默认的编码方式。 但是在用文本的传输和MP3等大型文件的时候,使用这种编码就显得 效率低下。 ②multipart/form-data 。 指定传输数据为二进制类型,比如图片、mp3、文件。 ③text/plain。 纯文体的传输。 空格转换为 “+” 加号,但不对特殊字符编码。 2.明确在enctype参数为application/x-www

【测试工具】这些APP实用测试工具,不知道你就out了!

筅森魡賤 提交于 2020-08-06 19:43:39
本期,我将给大家介绍14款实用的测试工具,希望能够帮到大家!(建议收藏) UI自动化测试工具 1. uiautomator2 Github地址: https://github.com/openatx/uiautomator2 star: 1.9k 介绍: openatx开源的ui自动化工具,支持android和ios。主要面向的编程语言是python,api设计简洁易用,在开源社区也是很受欢迎。 原理图: 与appium的比较 2. appium Github地址: https://github.com/appium/appium star: 1.9k 介绍: 基于Node.js的一款非常成熟的ui自动化工具,支持多种语言开发,在测试圈非常流行,可以说是ui自动化领域的标杆产品。你不知道appium,都不好意思说自己干测试这行。 原理图: 3. ATX-Test Github地址: https://github.com/pengchenglin/ATX-Test star: 0.11k 介绍: 基于uiautomator2和unittest封装的一个ui自动化测试框架。 项目作者已经把框架设计、可配置化、底层设备连接、日志模块、报告模块都做好了,使用者只需要编写PageObject和脚本逻辑即可,大大提高了uiautomator2的易用性。 不仅如此