Python3+Appium+安卓模拟器实现APP自动化测试,并生成测试报告(简化版...

Python3+Appium+安卓模拟器实现APP自动化测试,并生成测试报告(简化版...

2023年6月30日发(作者:)

Python3+Appium+安卓模拟器实现APP⾃动化测试,并⽣成测试报告(简化版)背景在这⼀年多的时间⾥,挺多⼩伙伴看到了那篇⽂章,但是⾃⼰在操作过程中遇到了各式各样的问题,然后通过留⾔、私信、加QQ等⽅式联系我,⽽我⼜经常不在线,不能及时帮⼤家解决问题。所以抽空专门为想要⼊门⾃动化测试的初学者再写⼀篇⽂章。本⽂内容仅包含⾃动化测试环境配置、基本的demo测试及⽣成测试报告,没有⾼级功能介绍,⽬的只是带门外的⼩伙伴⼊个门,故配置⽅⾯尽量简化了。虽然本⽂会复⽤上⼀篇⽂章的部分内容,但⽐上⼀篇要简单。⽐如,本⽂在使⽤模拟器测试的基础上,直接复⽤模拟器中的⼯具包,不再需要安装Android SDK(当然如果有能⼒折腾的话建议安装原版Android SDK+最新版Appium)。概述本⽂主要分为以下⼏个部分1. 安装Python32. 安装Python3的Appium库3. 安装JDK4. 安装模拟器5. 安装Appium6. 编写测试脚本并⽣成测试报告正⽂⼀、安装Python3⼆、安装Python3的Appium库打开Python安装⽬录,找到Scripts⽂件夹,点进去,⽰例:在地址栏上输⼊cmd,然后回车,打开控制台:在控制台⾥输⼊命令pip install Appium-Python-Client,然后回车看到下图的提⽰就表明安装成功了三、安装JDK现在下载JDK好像要账号登录,不想⿇烦的话,百度下“JDK8 下载”之类的关键词,有许多下载⽹站,选个靠谱的下载即可。接下来安装过程⽐较简单,也是⼀路Next,注意选择⼀下安装路径,⽐如我的安装路径D:Javajdk1.8四、安装模拟器由于本⽂我们不打算依赖Android SDK,所以安装完成后要从模拟器⾥抽出adb给Appium⽤,所以要进⾏如下配置:1. 新建⼀个⽂件夹android-sdk,然后在该⽂件夹下新建platform-tools,⽐如我的:D:android-sdkplatform-tools2. 打开模拟器安装⽬录,进⼊到bin⽬录(⽐如:D:Noxbin),复制、、三个⽂件到上边创建的platform-tools⽂件夹3. 启动模拟器4. 启动完成后,在模拟器bin⽬录打开控制台,执⾏ connect 127.0.0.1:62001,然后执⾏adb devices,看到如下信息就表⽰成功了5. 在模拟器⾥安装测试apk⽂件,这⾥以⼀个计算器app为例,直接将apk⽂件拖到模拟器⾥即可6. 继续在刚刚的控制台窗⼝⾥输⼊aapt dump badging D:,其中D:是测试apk的完整路径。可以看到安装包的信息都打印出来了,记录下红框⾥这两个名称,待会⼉写测试脚本的时候要⽤。注意,如果模拟器重启了,需要执⾏第4步的 connect 127.0.0.1:62001。五、安装Appium安装完成后,启动Appium,host和port默认的即可,然后编辑下配置信息,ANDROID_HOME和JAVA_HOME就是上边SDK和JDK的路径。然后点下边那个保存并重启的按钮,然后点第⼀个Start Server按钮,将会看到七、编写测试脚本并⽣成测试报告1. 创建测试⽤例⽬录testcase,在该⽬录下创建test_⽂件import timeimport unittestfrom appium import webdriverclass MyTests(se): #

测试开始前执⾏的⽅法 def setUp(self): desired_caps = {'platformName': 'Android', #

平台名称 'platformVersion': '5.1.1', #

系统版本号 'deviceName': '127.0.0.1:62001', #

设备名称。如果是真机,⼀般在'设置->关于⼿机->设备名称'⾥查看 'appPackage': 'ator', # apk的包名 'appActivity': 'tivity' # activity

名称 } = ("127.0.0.1:4723/wd/hub", desired_caps) #

连接Appium itly_wait(6) def test_calculator(self): """计算器测试""" (3) window = _window_size() x0 = window['width'] * 0.8 #

起始x坐标 x1 = window['width'] * 0.2 #

终⽌x坐标 y = window['height'] * 0.5 # y坐标 for i in range(3): (x0, y, x1, y, 500) (1) _element_by_id('ator:id/guide_button').click() (1) for i in range(6): for i in range(6): _element_by_id('ator:id/frag_calculator').click() (1) btn_xpath = '/hierarchy/ayout/Layout/ayout/Layout/ayout/ayout/Layout/Layout/ayout/veLayout/Layout[2]/Layout/Layout[3]//ew/ayout[{0}]/ayout' _element_by_xpath(btn_(7)).click() _element_by_xpath(btn_(10)).click() _element_by_xpath(btn_(8)).click() (5) #

测试结束后执⾏的⽅法 def tearDown(self): ()其中,appPackage和appActivity对应上边aapt命令查出来的app信息。platformVersion指的是系统版本号,对应模拟器或者真机的版本,如下2. 创建⽂件import osimport timeimport unittestfrom HTMLTestRunner import HTMLTestRunnertest_dir = './testcase'discover = er(start_dir='./testcase', pattern="test*.py")discover = er(start_dir='./testcase', pattern="test*.py")if __name__ == "__main__": report_dir = './test_report' rs(report_dir, exist_ok=True) now = me("%Y-%m-%d %H-%M-%S") report_name = '{0}/{1}.html'.format(report_dir, now) with open(report_name, 'wb') as f: runner = HTMLTestRunner(stream=f, title="测试报告", description="本测试报告内容包含超级计算器的简单测试") (discover)导出测试报告⽤到了HTMLTestRunner,但是Python3的好像有问题,在⽹上找了两个修改后⽀持Python3的,需要的话可以在本⽂尾部的⽰例项⽬中下载。3. 运⾏⽂件等程序运⾏完之后即会在test_report⽬录下⽣成测试报告在浏览器⾥打开即可看到报告内容,⽰例⾄此,全部完成。

发布者:admin,转转请注明出处:http://www.yc00.com/news/1688090914a79435.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信