上一阶段已完成了ui自动化测试和接口自动化测试框架的搭建,但是对于app的自动化测试一直没有开展,这个星期利用空闲的时间各种瞎搞,终于将框架搭建完成,同时在这里记录一下搭建过程,仅供参考。
工欲善其事,必先利其器,所以我们将要使用到的工具先准备好,以便后续直接使用。
1、pycharm(2023.1.2)
2、python(3.8)
3、Appium-windows(1.15.1)
4、jdk(1.8.0_131)
5、androidsdk
6、Appium_Python_Client
由于做前面的项目,我已安装pycharm、python、jdk,所以只需要另外安装Appium-windows和安卓sdk、Appium_Python_Client就可以了。Appium_Python_Client主要是用于调用客户端库和 Appium Server 进行通信,解压出来之后在cmd命令行输入python setup.py install就可以安装了。
安装完成后打开appium是下面这样的,不用管主机和端口,直接启动服务器。
安装好所有软件后,我们需要将手机连接上电脑,并且需要打开手机设置里面的开发者模式,然后允许usb调试,测试是否连接成功,在终端输入‘adb devices -l’,查看连接的设备;注意需要先进入到安装sdk的adb.exe目录。
打开pycharm,新建一个项目,我们的思路是使用unittest来管理测试用例,使用HTMLTestRunner来执行用例并生成测试报告。因为想要做得细致和灵活一点,我们将每一个要使用到的元素作为一个对象,针对每个对象创建它自己要用到的方法。后续元素有变动的化就只要改一个地方就可以了。
我们先创建好目录
report主要存放自动生成的测试报告
test_case存放我们测试用例信息
case 存放的是可只需的用例脚本
models存放的是项目的配置信息
page_obj存放的是页面元素和对应的方法
以app的登录页面为例,我们先在driver文件里面初始化参数和环境,每一个app都有appPackage、appActivity,那应该在哪里查看呢?
打开终端输入(手机需要连接电脑)
adb shell dumpsys activity recents | find “intent={”
cmp=tv.danmaku.bili/.ui.splash.SplashActivity就是我们需要的appPackage、appActivity了
appPackage = tv.danmaku.bili
appActivity = .ui.splash.SplashActivity
然后将各个参数填写完成就可以了。
接着我们在base.py里面创建一个Base类,在init初始化方法中,定义driver类型,后续调用这个类的时候都会自动初始化driver.
然后针对每一页面创建一个类,将这个页面要用的所有元素都放到这个类里面,并且把这些元素的操作写成独立的方法。
有了元素的操作方法,我们在写用例脚本的时候直接调用这些方法就可以了。
最后是使用unittest管理用例,使用HTMLTestRunner执行用例并生成测试报告。