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

摘要:
 偶然的机会遇到了这个工具——AppiumStudio,在官网是这么解释的  GetyourAppiumtestingprojectsgoingwithinminutesInstallAppiumStudiowithasingleclickalongwithalltherequireddevelopmenttools.UsetheintuitiveGUItoeasilydevelopnewtest

  偶然的机会遇到了这个工具——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测试环境。

安装后,

【转载】】Appium Studio 初体验(windows做ios自动化,录制appium脚本)第1张

大体界面就是这样的,

我们链接设备,点击【转载】】Appium Studio 初体验(windows做ios自动化,录制appium脚本)第2张按钮,增加你的设备,我链接了一台安卓模拟器,一台iphone6,(注意,adb环境可能识别不了设备,去appium studo 安装目录下复制adb.exe 去替换模拟器下面的adb,修改为对应的包就可以)

 【转载】】Appium Studio 初体验(windows做ios自动化,录制appium脚本)第3张

那么

【转载】】Appium Studio 初体验(windows做ios自动化,录制appium脚本)第4张

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

当我们选择后,

【转载】】Appium Studio 初体验(windows做ios自动化,录制appium脚本)第5张

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

【转载】】Appium Studio 初体验(windows做ios自动化,录制appium脚本)第6张

都是可以很好的切换。

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

选择【转载】】Appium Studio 初体验(windows做ios自动化,录制appium脚本)第7张

录制,

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

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

下面生成对应的脚本,

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

录制脚本如下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=//*[@  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("//*[@  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上面有日志输出,

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

【转载】】Appium Studio 初体验(windows做ios自动化,录制appium脚本)第12张

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

【转载】】Appium Studio 初体验(windows做ios自动化,录制appium脚本)第13张

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

【转载】】Appium Studio 初体验(windows做ios自动化,录制appium脚本)第14张

 【转载】】Appium Studio 初体验(windows做ios自动化,录制appium脚本)第15张可以选择最近的查看测试报告,

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

【转载】】Appium Studio 初体验(windows做ios自动化,录制appium脚本)第16张

 下面详细的记录日志。【转载】】Appium Studio 初体验(windows做ios自动化,录制appium脚本)第17张

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

推荐大家去尝鲜。

免责声明:文章转载自《【转载】】Appium Studio 初体验(windows做ios自动化,录制appium脚本)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Web攻防系列教程之 Cookie注入攻防实战openssl知识点总结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Windows 的 80 端口被 System 进程占用解决方案

通过 Windows 的资源监视器(win+R:resmon)可以看到 80 端口已经被占用,下图是已经解决好了,没能截图被占用的情况,下面给出解决方案。 查看解决方案请直接跳转到第2节。 1、使用 windows 工具/命令查看端口占用情况 PS:贴出两个好用的 windows cmd 命令 查看占用端口程序的 PID(最后一列代表 PID): n...

pytest 基本用法

1、断言用assert,可以进行==,!=,+,-,*,/,<=,>=,is True、False,is not True、False ,in ,not in 等判断。 import pytestdef add(a,b): return a + bdef is_prime(n): if n <= 1: retur...

【转载】Vue+原生App混合开发

项目的大致需求就是做一个App,里面集成各种功能供用户使用,其中涉及到很多Vue的使用方法,单独总结太麻烦,所以通过这几篇笔记来梳理一下。原型图如下: 路由配置 主界面会用到一些原生App方法,比如验证用户身份等,故由原生App完成,进去的每个模块则全部都是HTML页面(有一种后端工作好轻松的感觉 ̄へ ̄)。由于传统的HTML页面开发起来效率太低,所以我选...

TP5实现邮件发送(PHP 利用QQ邮箱发送邮件「PHPMailer」)

在 PHP 应用开发中,往往需要验证用户邮箱、发送消息通知,而使用 PHP 内置的 mail() 函数,则需要邮件系统的支持。     如果熟悉 IMAP/SMTP 协议,结合 Socket 功能就可以编写邮件发送程序了,不过开发这样一个程序并不容易。      好在 PHPMailer 封装的足够强大,使用它可以更加便捷的发送邮件,免去了我们很多额外的麻...

【转】Sqlserver通过链接服务器访问Oracle的解决办法

一、创建sqlserver链接服务(sqlserver链接oracle)  首先sqlserver 链接oracle可以通过两个访问接口: “MSDAORA” 和“OraOLEDB.Oracle” 1、“MSDAORA”访问接口是由Microsoft OLE DB Provider for Oracle提供的,这里建议不使用此接口进行链接。通过该访问接口建...

C#探秘系列(七):XML文件操作(一)

XML 是可扩展标记语言(Extensible Markup Language)的缩写,其中的 标记(markup)是关键部分。你可以创建内容,然后使用限定标记标记它,从而使每个单词、短语或块成为可识别、可分类的信息。因而在C#中,对xml文件的操作尤为重要。本博客着力于在C#中如何对xml文件实施诸如创建、搜索、序列化和反序列化等操作,默认你已有一定的...