appium自动化测试教程,appium怎么做自动化测试

http://www.itjxue.com  2023-01-09 11:41  来源:未知  点击次数: 

APP自动化测试之appium连接真机启动app

app自动化测试的第一步,是启动被测app。 appium环境搭建 好后,我们就可以连接真机启动app了。环境为windows,Appium1.18.0,Android手机,被测app为今日头条app,让我们开始吧。

写作不容易,帮忙点个赞哟!

(一)快速体验APPUI自动化-登录流程

Ps:网上有大把软件安装和环境搭建教程,本文只探讨APP-UI的自动化流程实现,另外下面涉及到的python语法和元素定位、操作也是一样的,在开始做自动化之前,建议先去打一打基础

1.测试机用USB连接电脑,选择传输文件模式

2.设置-开启手机开发者模式(大部分安卓机多次点击版本号),勾选USB调试选项

3.Win+R输入cmd进入命令提示符界面,使用adb命令查看连接情况,adb devices,如下图显示,连接成功

1.打开appium,进入测试机配置信息界面

2.使用adb命令查询测试机数据,输入配置信息

3.Pycham新建文件,直接复制上图中的配置信息,建立driver对象

4.appium中保存配置信息为一个项目(下次使用时可直接打开),进入测试界面

1.点击同意并继续按钮

2.滑动引导页,点击立即体验按钮

3.输入手机号,输入密码,点击登录按钮

4.权限弹窗点击不允许、禁止

5.输入验证码,点击下一步

6.指纹验证点击取消,跳过

7.设置手势密码

8.验证进入的界面是否有刷卡收款字段

9.退出

Robotframe work之web自动化测试小例子

????????原来一直是做Python+selenium的web自动化测试的,最近换了一家新公司,需要做app自动化测试,所以appium如何使用都得现学。框架也不是用的原来的,现在公司再用Robotframe work在做,一切都是从头开始。自己也开始记录一下学习的过程,学习遇到不懂的也都会在网上搜索,但有时候很痛苦,搜索的很费事。所以自己也就想起来将从头开始学的一些东西都记录一下。

? ??????Robotframe work的环境搭建网上都有很多,这里就不一一说明了,直接上干货,一个小小的例子。

? ??????

上图是测试51自学网,过程是这样的,sleep就不说了。

1.使用chrome浏览器打开51自学网的浏览器

2.然后鼠标悬浮在程序开发的菜单上,mouse over鼠标悬停+xpath定位

3.然后点击appium自动化测试教程子菜单, click element+xpath定位,若点击按钮,则用click button

4.然后进行断言验证,得到跳转页的title, get text方法获取文本,然后赋值给变量

5.进行断言,should match方法

6.输出测试完成,log方法

7.关闭浏览器

运行完成后,显示如下页面:

robotframerwork的关键字与selenium有很大差别,有时候不知道找什么关键字,那么可以按F5,在search keyword中搜索你要做的操作,比如打开浏览器,可以输入open,出现如下图:

今天就写到这里,以后我慢慢在更新,一起努力学习

基于Appium的Android自动化测试(二)——TestNG

TestNG介绍

TestNG意为test next generation,是Java中的一个测试框架,Java中已经有一个JUnit的测试框架,类似于JUnit和NUnit,但TestNG比JUnit功能更加强大,使用也更方便,测试人员一般用TestNG来写自动化测试。

TestNG最简单的测试

下面是TestNG的一个例子

packageTankLearn2.Learn;

importorg.junit.AfterClass;

importorg.junit.BeforeClass;

importorg.testng.annotations.Test;

publicclassTestNGLearn1{

@BeforeClass

publicvoidbeforeClass(){

System.out.println("this is before class");

}

@Test

publicvoidTestNgLearn(){

System.out.println("this is TestNG test case");

}

@AfterClass

publicvoidafterClass(){

System.out.println("this is after class");

}

}

TestNG的基本注解

注解 描述

@BeforeSuite 注解的方法将只运行一次,运行所有测试前此套件中。

@AfterSuite 注解的方法将只运行一次,此套件中的所有测试都运行之后。

@BeforeClass 注解的方法将只运行一次先行先试在当前类中的方法调用。

@AfterClass 注解的方法将只运行一次后已经运行在当前类中的所有测试方法。

@BeforeTest 注解的方法将被运行之前的任何测试方法属于内部类的标签的运行。

@AfterTest 注解的方法将被运行后,所有的测试方法,属于内部类的标签的运行。

@BeforeGroups 组的列表,这种配置方法将之前运行。此方法是保证在运行属于任何这些组第一个测试方法,该方法被调用。

@AfterGroups 组的名单,这种配置方法后,将运行。此方法是保证运行后不久,最后的测试方法,该方法属于任何这些组被调用。

@BeforeMethod 注解的方法将每个测试方法之前运行。

@AfterMethod 被注释的方法将被运行后,每个测试方法。

@DataProvider 标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象[]的测试方法的参数列表中可以分配。

该@Test方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。

@Listeners 定义一个测试类的监听器。

@Parameters 介绍如何将参数传递给@Test方法。

@Test 标记一个类或方法作为测试的一部分。

TestNG组测试

在编写测试的过程中,经常遇到只想执行个别或者某一部分/某一类型的测试用例,TestNG提供了分组测试方法,可以按组来执行测试用例。

packageTankLearn2.Learn;

importorg.testng.annotations.Test;

publicclassGroupTest{

@Test(groups = {"systemtest"})

publicvoidtestLogin(){

System.out.println("this is test login");

}

@Test(groups = {"functiontest"})

publicvoidtestOpenPage(){

System.out.println("this is test Open Page");

}

}

TestNG依赖测试

有时,我们需要按顺序来调用测试用例,测试用例之间存在依赖关系,TestNG支持测试用例之间的依赖。

importorg.openqa.selenium.WebElement;

importorg.testng.Assert;

importorg.testng.annotations.Test;

importpage.*;

importutil.AppiumTest;

importjava.util.List;

importstaticutil.Helpers.*;

@Test

publicvoidmethod1()

{

BookMarkEditPage bookMarkPageEdit =newBookMarkEditPage();

bookMarkPageEdit.addPoiToBookMark("清华东路西口");

Assert.assertTrue(bookMarkPageEdit.verifyAddPoiToBookMark("清华东路西口"),"添加poi点失败");

System.out.println("This is method 1");

}

@Test(dependsOnMethods = {"method1"})

publicvoidmethod2(){

BookMarkCommonPage bookMarkCommonPage =newBookMarkCommonPage();

bookMarkCommonPage.deleteAllItems();

Assert.assertTrue(bookMarkCommonPage.isDisplayed("你还没有添加收藏"),"删除失败!");

System.out.println("This is method 2");

}

TestNG忽略测试

当测试用例还没准备好时,可以给测试用例加上@Test(enable = false), 来禁用此测试用例。

packageTestng;

importorg.junit.AfterClass;

importorg.junit.BeforeClass;

importorg.testng.annotations.AfterMethod;

importorg.testng.annotations.BeforeMethod;

importorg.testng.annotations.Test;

publicclassLtg{

@BeforeMethod

publicvoidbeforeMethod(){

System.out.println("this is before method");

}

@Test(enabled =false)

publicvoidTestNgLearn1(){

System.out.println("this is TestNG test case 1");

}

@Test

publicvoidTestNgLearn2(){

System.out.println("this is TestNG test case 2"); ? ?}

@AfterMethod

publicvoidafterMethod(){

System.out.println("this is after method");

}

}

TestNg执行顺序

BeforeMethod/AfterMethod会在每个方法中调用一次,这种适用场所,比如执行完第一个用例之后要重置数据才能执行第二条用例时,可以用这种方式,BeforeMethod 就放重置数据的方法,让每个方法执行之前都去调用这个方法

TestNG具体生命周期

TestNg特点

1、annotations注释,如@test @BeforeMethod ;

2、支持多线程执行case ;

3、支持数据驱动dataProvider ;

4、支持参参数 ;

5、能够作为eclipse的插件 ;

6、能够(配合reportng)生产客观的测试报告 ;

7、可通过testng.xml管理执行case和suite;

TestNG suite

testng.xml文档中最上层的元素

说明:一个xml文件只能有一个,是一个xml文件的根级

由和组成

suite定义一个测试套件,可以设置是否使用多线程,可包含多个测试用例或者测试group。

testng.xml 配置详解

简单的大概结构如下:

以下详细XML规则

-结-构-树

suite

–tests

—-parameters

—-groups

——definitions

——runs

—-classes

–parameters

比较详细的结构如下:

APP自动化测试appium环境怎么搭建?

APP自动化测试appium环境怎么搭建?1

/12

下载安装node.js (注意操作系统,32位,64位)。安装完成后,检查是否安装成功:cmd, 输入node -v , 显示安装版本信息,则安装成功,如下图所示:

2

/12

安装JDK配置环境变量

JDK安装,以及环境变量设置

下载eclipse (注意操作系统,32位,64位),Mars版。

3

/12

配置Android SDK环境

下载Android SDK,下载地址,如下图所示:

4

/12

安装保证Level 17或以上版本 api,如下图所示:

5

/12

Android操作系统选择安装用于模拟机,如下图所示:

6

/12

配置环境变量

a新增变量:ANDROID_HOME,设置值为安装目录: l例如 E:\android-sdk

bPath中新增参数:%ANDROID_HOME%\tools; %ANDROID_HOME%\platform-tools

7

/12

验证是否安装配置成功

cmd: 输入 android, 弹出SDK Manager窗口。

8

/12

ADT安装

打开eclipse,helpinstall new software, 输入

下载时间会比较久,也可以考虑直接下载后本地安装,如下图所示:

9

/12

安装完成,重启Eclipse,如下图所示:

10

/12

安装Appium,下载: ,如下图所示:

11

/12

设置环境变量

Appium目录和他的bin目录都加入环境变量PATH:例如

APPIUM_HOME: E:\App\Appium

Path: %APPIUM_HOME%\node_modules\.bin

12

/12

运行appium-doctor来验证Appium的所有依赖是否配置正确。

基于Appium+WDA+Python搭建IOS自动化测试全纪录(三):真机demo运行

前期回顾:

基于Appium+WDA+Python搭建IOS自动化测试全纪录(二):模拟器demo运行

基于Appium+WDA+Python搭建IOS自动化测试全纪录(一):环境搭建

在模拟器将demo跑通之后,就要在真机上测试啦,模拟器总是要为真机服务的。

在真机上主要是涉及到签名及证书的问题,一下blog写的特别好,然而其实我也没有看懂,RSA算法神马的早在密码学课程上还给老师了。

iOS App 签名的原理

主要在此简单记录一下证书的配置吧。

在xcode中找到build Setting配置部分(之所以把这张图放出来是因为我最开始找不到这个配置,萌新啥都找不到):

更改一下三个字段对应的内容:

Code Siging identify 证书里面对应的开发者

Product Bundle Identify 对应的bundleID

Provisioning Profile 包含了 证书 / Entitlements 等数据,并由苹果后台私钥签名的数据包。

数据包是.mobileprovision文件格式结尾 在终端中输入如下命令即可看到里面的信息

改完之后 我们开发的程度就可以装到真机上啦,这个时候选择在真机上运行,就可以啦。

测试app装到真机上之后,还要考虑如何开启py脚本,在真机上进行测试。

这里需要注意两点:

最后找到的地址大概如下:

放到xcode中进行签名证书配置,注意虽然我们打开的是WebDriverAgent文件夹,但是我们要配置的是WebdDriverAgentRunner 在其Build Settings中进行与证书有关的配置

配置完毕后还需要再WebdDriverAgentRunner中添加一个RoutingHTTPServer.frameork

点击添加之后-add Other

在如下路径可以查找到该framework

找的一定是appium文件路径下的!

上边关于wda并没有做过多说明,因为还不怎么了解 等了解了再补充相关知识

py脚本主要是配置有更改,主体文件请见开头(二)模拟器demod的blog

在真机上配置更改如下:

然后启动appium 发现真机上装上了厕所app 装上了WebDriverAgentRunner 然后用python运行脚本就ok拉!

以上为从搭建环境-》模拟器跑demo-》真机跑demo的简单记录,不涉及到原理方面的讲解,如有错误之处还请提出。

【之后还有跳一跳的安卓环境搭建

wda的inspector相关环境还没记录~】

[Tbc]

个人博客:

进击的程序茗

(责任编辑:IT教学网)

更多

推荐新手入门文章