Appium Studio 初体验(windows做ios自动化,录制appium脚本)

偶然的机会遇到了这个工具——Appium Studio, 在官网是这么解释的

Get your Appium testing projects going within minutes
Install Appium Studio with a single click along with all the required development tools. Use the intuitive GUI to easily develop new tests or execute existing Appium testing projects on any local or remote devices.

让Appium测试项目在几分钟内完成
只需单击一下即可安装Appium Studio以及所有必需的开发工具。 使用直观的GUI轻松开发新测试或在任何本地或远程设备上执行现有的Appium测试项目。

是一个可以录制脚本,可以运行测试用例,它可以在windows电脑上,链接ios设备做ios的测试,这里为这个工具点个赞,我们测试ios应用不在用ios设备也能进行测试了。

下载地址:https://experitest.com/mobile-test-automation/appium-studio/

其他需要配置的appium测试环境。

安装后,

大体界面就是这样的,

我们链接设备,点击按钮,增加你的设备,我链接了一台安卓模拟器,一台iphone6,(注意,adb环境可能识别不了设备,去appium studo 安装目录下复制adb.exe 去替换模拟器下面的adb,修改为对应的包就可以)

那么

我们选择安装我们的应用,到指定设备上,也可以关闭启动应用, 可以选择配置,

当我们选择后,

会给我们生成对应的脚本,我们可以切换不同的脚本

都是可以很好的切换。

那么怎么录制我们的脚本呢,启动app,

选择

录制,

然后我们去模拟器去操作就可以

这样就给我们操作完,点击关闭,自动吧录制的步骤给我们添加上去,

下面生成对应的脚本,

我们点击保存按钮进行保存

录制脚本如下python版本

import unittest
import time
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions

class sssss(unittest.TestCase):
    reportDirectory = ‘reports‘
    reportFormat = ‘xml‘
    dc = {}
    testName = ‘sssss‘
    driver = None

    def setUp(self):
        self.dc[‘reportDirectory‘] = self.reportDirectory
        self.dc[‘reportFormat‘] = self.reportFormat
        self.dc[‘testName‘] = self.testName
        self.dc[‘udid‘] = ‘127.0.0.1:62001‘
        self.dc[‘app‘] = ‘C:\\Users\\Administrator\\AppData\\Roaming\\appiumstudio\\apk\\com.aixuetan.onlinecom.aixuetang.mobile.activities.LaunchActivity.2.apk‘
        self.dc[‘appPackage‘] = ‘com.aixuetan.online‘
        self.dc[‘appActivity‘] = ‘com.aixuetang.mobile.activities.LaunchActivity‘
        self.dc[‘instrumentApp‘] = ‘true‘
        self.dc[‘platformName‘] = ‘android‘
        self.driver = webdriver.Remote(‘http://localhost:4723/wd/hub‘,self.dc)

    def testsssss(self):

        self.driver.find_element_by_xpath("xpath=//*[@id=‘course_image‘ and (./preceding-sibling::* | ./following-sibling::*)[@text=‘高一语文通用版(全年班)‘]]").click()
        self.driver.find_element_by_xpath("xpath=//*[@text=‘已报名76423人‘]").click()
        self.driver.find_element_by_xpath("xpath=//*[@id=‘ll_enroll‘]").click()
        self.driver.find_element_by_xpath("xpath=//*[@text=‘03-进行更深层次的阅读(一)——赏析评价能力的提升(上)‘]").click()
        self.driver.find_element_by_xpath("xpath=//*[@text=‘高一语文通用版(全年班)‘]").click()
        self.driver.find_element_by_xpath("xpath=//*[@id=‘course_image‘]").click()
        self.driver.find_element_by_xpath("xpath=//*[@id=‘course_image‘]").click()
        self.driver.find_element_by_xpath("xpath=//*[@id=‘course_image‘]").click()
        self.driver.find_element_by_xpath("xpath=//*[@text=‘已报名76423人‘]").click()
        self.driver.find_element_by_xpath("xpath=//*[@text=‘加入课程‘]").click()
        self.driver.find_element_by_xpath("xpath=//*[@id=‘et_password‘]").click()
        self.driver.find_element_by_xpath("xpath=//*[@id=‘et_username‘]").send_keys(‘1111111‘)
        self.driver.find_element_by_xpath("xpath=//*[@id=‘et_password‘]").send_keys(‘11111‘)
        self.driver.find_element_by_xpath("xpath=//*[@id=‘tv_login‘]").click()

    def tearDown(self):
        self.driver.quit()

    if __name__ == ‘__main__‘:
        unittest.main()

java版本如下

//package <set your test package>;
import io.appium.java_client.remote.AndroidMobileCapabilityType;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import io.appium.java_client.TouchAction;
import java.time.Duration;
import io.appium.java_client.remote.MobileCapabilityType;
import io.appium.java_client.android.AndroidKeyCode;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.By;
import org.testng.annotations.*;
import java.net.URL;
import java.net.MalformedURLException;
import java.util.logging.Level;

public class sssss {
    private String reportDirectory = "reports";
    private String reportFormat = "xml";
    private String testName = "sssss";
    protected AndroidDriver<AndroidElement> driver = null;

    DesiredCapabilities dc = new DesiredCapabilities();

    @BeforeMethod
    public void setUp() throws MalformedURLException {
        dc.setCapability("reportDirectory", reportDirectory);
        dc.setCapability("reportFormat", reportFormat);
        dc.setCapability("testName", testName);
        dc.setCapability(MobileCapabilityType.UDID, "127.0.0.1:62001");
        dc.setCapability(MobileCapabilityType.APP, "C:\\Users\\Administrator\\AppData\\Roaming\\appiumstudio\\apk\\com.aixuetan.onlinecom.aixuetang.mobile.activities.LaunchActivity.2.apk");
        dc.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "com.aixuetan.online");
        dc.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, "com.aixuetang.mobile.activities.LaunchActivity");
        dc.setCapability("instrumentApp", true);
        driver = new AndroidDriver<>(new URL("http://localhost:4723/wd/hub"), dc);
        driver.setLogLevel(Level.INFO);
    }

    @Test
    public void testsssss() {
        driver.findElement(By.xpath("//*[@id=‘course_image‘ and (./preceding-sibling::* | ./following-sibling::*)[@text=‘高一语文通用版(全年班)‘]]")).click();
        driver.findElement(By.xpath("//*[@text=‘已报名76423人‘]")).click();
        driver.findElement(By.xpath("//*[@id=‘ll_enroll‘]")).click();
        driver.findElement(By.xpath("//*[@text=‘03-进行更深层次的阅读(一)——赏析评价能力的提升(上)‘]")).click();
        driver.findElement(By.xpath("//*[@text=‘高一语文通用版(全年班)‘]")).click();
        driver.findElement(By.xpath("//*[@id=‘course_image‘]")).click();
        driver.findElement(By.xpath("//*[@id=‘course_image‘]")).click();
        driver.findElement(By.xpath("//*[@id=‘course_image‘]")).click();
        driver.findElement(By.xpath("//*[@text=‘已报名76423人‘]")).click();
        driver.findElement(By.xpath("//*[@text=‘加入课程‘]")).click();
        driver.findElement(By.xpath("//*[@id=‘et_password‘]")).click();
        driver.findElement(By.xpath("//*[@id=‘et_username‘]")).sendKeys("1111111");
        driver.findElement(By.xpath("//*[@id=‘et_password‘]")).sendKeys("11111");
        driver.findElement(By.xpath("//*[@id=‘tv_login‘]")).click();
    }

    @AfterMethod
    public void tearDown() {
        driver.quit();
    }
}

然后当你没有选中测试用例步骤,他会给你注释掉,点击run按钮,启动测试,

我们可以看到log上面有日志输出,

运行到步骤会选中步骤,运行完,自动生成测试报告

一些重要的信息也会展示出来

还可以看到步骤的dubeg信息,每个步骤都会有截图

可以选择最近的查看测试报告,

选择all summaries  reposrt  统计了所有运行的,直观,

下面详细的记录日志。

可以录制,可以运行现有脚本,每个步骤 都有截图,还可以生成批量的测试报告,有没有很简单,关键它可以在windows执行ios测试,

推荐大家去尝鲜。

原文地址:https://www.cnblogs.com/leiziv5/p/10237761.html

时间: 2024-10-04 02:53:49

Appium Studio 初体验(windows做ios自动化,录制appium脚本)的相关文章

Android Studio 初体验

Google在I/O2013大会上公布了Android新的开发工具Android Studio,趁周末时间做了一下尝试.有须要的能够 在http://developer.android.com/sdk/installing/studio.html下载,当前版本号是V0.1.官方解释:Android Studio is a new Android development environment based on IntelliJ IDEA. Similar to Eclipse with the

Android Studio初体验之启动AVD模拟器异常:cannot set up guest memory &#39;pc.ram&#39;

启动AVD模拟器异常:Cannot set up guest memory 'pc.ram' 错误信息: HAX is working and emulator runs in fast virt mode Cannot set up guest memory 'pc.ram': Invalid argument Error accepting connect 分析 各种查资料,没有发现网上有同样问题的,在一篇相关文章中找到类似的解决方法. 从语意看,应该是hax安装后没有启动.(不懂hax是什

使用Appium做手机自动化录制问题

最近在使用appium做Android手机自动化脚本录制, 发现点击“tap”时,一直没有用,页面还是不能跳转. 咋办?发愁... 于是看到旁边有个“sendkeys”,那是不是能够直接发送参数不就行了吗?!瞬间感觉到自己真是聪明绝顶,哦嘿哟~ 结果,结果,OH NO,才发现输入参数后,使用“sendkeys”还是没有响应.没有响应. 彻底失落了. 换手机,最后用VIVO手机,重新配置环境,一切重头再来. 结果意想不到的是,能够正常运行啦,要飞起来了~ 总结一下:原来使用小米手机,无法利用app

Android Studio 初体验,从Eclipse到AS

这些天一直在忙着面试方面的准备以及不断更新完善我的Memory软件,不知不觉过去了好久. 由于我想对软件加入一些material design的新元素,因此去网上找对应的示例源码,突然发现除了各种教程上还在使用eclipse,这个世界几乎所有新的东东都被AndroidStudio包揽了,瞬间感觉不学AS简直就是不可逾越的交流鸿沟.因此网上买了个VPN翻墙,用了几天时间,终于搞明白了AS的基本用法.在此分享一下自己的学习心得. 自己是从Eclipse转到AS上的,所以在学习AS当中, 必然下意识的

Android Studio初体验之导入eclipse项目

本篇使用到的Android Studio版本为1.0, Eclipse ADT版本22.3.0. 主要介绍两种导入方式: 先用Eclipse导出为Gradle build files,然后直接用Android Studio导入该项目. 用Android Studio 直接导入Eclipse项目. Android Studio默认使用 Gradle 构建项目, Eclipse 默认使用Ant构建项目.建议Android Studio导入项目时,使用 Gradle 构建项目. 导出Eclipse 项

appium android 初体验

代码用的appium自带的例子,就不贴了. 遇到的两个问题, Could not find a Android device 因为没有android真机,所以用模拟器跑,一开始,我以为会自动帮我启动android模拟器然后运行. 实际上是要自己启动了android模拟器才能行,不然就报Could not find a Android device UiAutomator quit before it successfully launched android模拟器的速度实在不敢恭维,还没开机完成

Android Studio初体验之揭秘AS的项目的目录结构

(因为是初步,难免有错误出现,如果哪里记录的有问题,欢迎各位指正,共同成长) 我们默认你的AS是已经安装并好的,关于AS的安装,网上一大把,请各位自行寻找资源 下面记录一些配置以及AS的项目的目录结构 配置: 1.config:用户的配置文件,保存用户的个人设置(你所设置的所有的熟悉,注意备份,就不会一次次去设置)   2.restart:不用关心   3.system:运行的生成的缓存环境(会越来越大) ①考虑配置在磁盘空间大的磁盘中 ②可以删除,但是第一次使用的时候会初始化一些数据 项目结构

.NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验

不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家介绍.NET平台下的文档型数据库RavenDB,虽然我以前也在小项目用过其他文档型数据库,但问题很多,小项目还可以,大项目就歇菜了.这个数据库我关注了很久,最近一直在看它的文档,所以把知道的先总结下来. .NET开源目录:[目录]本博客其他.NET开源项目文章目录 本文原文地址:http://www

LINQ to Object初体验(使用对象取代二维数组作数据筛选)

VS2008里面有个神奇的东西,称之为LINQ,可以透过相同的语法方式来处理各式各样的数据(SQL,XML,Object,...),小喵此次初体验感受一下这个东西,真的很好用,初体验来做个简单的测试,请看小喵娓娓道来 VS2008里面有个神奇的东西,称之为LINQ,可以透过相同的语法方式来处理各式各样的数据(SQL,XML,Object,...),小喵此次初体验感受一下这个东西,真的很好用,初体验来做个简单的测试,请看小喵娓娓道来 先来看一张LINQ的架构图(数据来源:曹祖圣老师在TechEd2