从0到1完成UI自动化测试框架搭建之Pytest

上篇文章中,我们学会了如何使用UI Automator2+atx编写简单的Android自动化脚本

但是有个问题,大家可以思考下,光用自动化脚本让它自己动起来,是不是缺了点什么?

我们写测试用例的时候,是不是经常写:用例名 + 前置条件 + 操作步骤 + 预期结果 + 实际结果,用这个方法去判断一条用例是否通用。

自动化脚本呢?充其量相当于操作步骤。

我们还需要部分前置条件、预期结果、通过预期结果和实际结果的比对,来判断用例是否pass。所以我们这里引入了单元测试框架Pytest。

Pytest是一个非常成熟的全功能的Python测试框架,这里我们不做展开,只介绍我当前写demo用到的部分,有兴趣的同学,自行研究。

下载Pytest

pip install -U pytest

在这里插入图片描述
可以用pytest --version查看当前Pytest版本号,验证是否安装成功。

命名规则

1、文件名要用test_XXX.py或者XXX_test.py的形式。

2、测试类以Test开头,并且不能带有 init 方法。

3、测试函数也要用test_XXX的形式。

那我们知道了这三点,就可以开始写demo了:
在这里插入图片描述

如图,Pytest的基本结构就是这样了。我们运行一下,看下Pytest的执行顺序:
在这里插入图片描述

我们可以看出,它是按setup_class—setup—第一个方法—teardown—setup—第二个方法—…—teardown—teardown_class这个顺序去执行的。

然后每个测试函数中,通过assert去进行断言,然后全部断言的结果汇总后打印出来告诉你执行了多少条,哪个测试函数没通过。

那我们结合上节的UI Automator2的自动化框架,再一个自动化相关的Pytest例子:

  1. # coding:gbk

  2. import pytest

  3. import uiautomator2 as u2

  4. # 连接设备

  5. d = u2.connect('A3KUUT2113000390')

  6. class Test_Pytest():

  7. def setup_class(self):

  8. # 启动网易云音乐

  9. d.app_start('com.netease.cloudmusic')

  10. d(text="跳过").click

  11. def test_case_001(self):

  12. # 点击我的页面

  13. d.xpath('//*[@resource-id="com.netease.cloudmusic:id/bottomNav"]/android.view.ViewGroup[3]/android.widget.ImageView[1]').click()

  14. # 断言元素(创建歌单)存在

  15. assert d(description="创建歌单").exists()

  16. def test_case_002(self):

  17. # 点击创建歌单

  18. d(resourceId="com.netease.cloudmusic:id/create").click()

  19. # 给歌单命名为

  20. d(resourceId="com.netease.cloudmusic:id/etPlaylistName").set_text('new_play')

  21. # 点击完成

  22. d(resourceId="com.netease.cloudmusic:id/tvCreatePlayListComplete").click()

  23. # 返回我的页面

  24. d(description="转到上一层级").click()

  25. # 断言歌单名为new_play的歌单存在

  26. assert d(resourceId="com.netease.cloudmusic:id/name", text="new_play").exists()

  27. def teardown_class(self):

  28. # 关闭

  29. d.app_stop('com.netease.cloudmusic')

  30. if __name__=='__main__':

  31. pytest.main(["-s","test_Pytest.py"])

我们这边写了2个用例,一个验证云音乐启动后,点击跳转"我的"页面是否OK,一个验证创建歌单功能是否OK。

我们运行一下,看下测试结果:
在这里插入图片描述
截图中可以看出,2条用例,测试结果都是pass,一共用时7秒左右。 

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

  1. 文档获取方式:

  2. 加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

  • 44
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值