【拉勾三期课程贴】App 企业微信实战(二)

标题

App 企业微信实战(二)

课程价值

  • 了解 PO模式
  • 使用 PO 模式封装框架

大纲

  • 元素定位
  • PO模式介绍
  • 企业微信实战2

时长

90分钟

PPT

https://pdf.ceshiren.com/lg3/2.Appium%20PO模式/assets/player/KeynoteDHTMLPlayer.html#0

脚本编写

应用

PO 封装

  • Page对象:完成对页面的封装
  • Driver对象:完成对web、android、ios、接口的驱动
  • 测试用例:调用Page对象实现业务并断言
  • 数据封装:配置文件和数据驱动
  • Utils:其他功能封装,改进原生框架不足

PO 封装方式

1、从page开始封装,再去编写testcase测试用例(这节课讲)
2、先编写testcase(业务逻辑),再去编写page.

PO 改造流程

1、改造1:搭建起来PO模式的架构,将业务逻辑先写出来,后面就不需要改动测试用例,除非业务逻辑发生变化。
2、改造2:填充PO, 前端的业务流程不变,只改变PO层的方法和元素
3、改造3:BasePage 封装,初始化driver
4、改造4:app.py 模块的改造,复用driver, 判断 driver 是否为None 如果 driver == None 则实例化这个driver,否则 复用这个driver
5、改造5:改造 basepage.py 基类,封装一些最基本的方法,比如 find,find_and_click, find_and_sendkeys(), wait(), 显式等待 ,获取toast …

作业

  • 使用PO模式封装 添加联系人和删除联系人

课后反馈

作业(PO)—没问题,就是参数化好像有点问题,现在数据直接写死的:
https://github.com/Hurt12138/Hurt.git

https://github.com/Galaxyfanfan/HogwartsAppiumCode/tree/master/WeChatAppiumPO

https://github.com/qblslion/qccatni/tree/master/python_practice/python_commit_8_appPO

https://github.com/xym9527/appium_test

老师,这是本次的作业
https://github.com/endeavor-hxs/test_prac/tree/master/test_appium

python实战_作业8-企业微信-appium-添加删除联系人-po-参数化

./python_practice/work7_appiumTest/page
./python_practice/work7_appiumTest/testcases
./python_practice/work7_appiumTest/datas
./python_practice/work7_appiumTest/conftest.py

https://github.com/JuliaZxr/hogwarts_lg3_Yuki.git

作业完成的不错,一些细节需要注意:

1、注意文件名和类名,方法名的命名规则。
参照链接:https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/#id16
2、注意目录结构划分,将测试用例和page页,测试数据 分开管理

作业:appium-PO
https://github.com/Vena-ww/MyPythonTest/tree/master/Python_test1/appium_test

https://github.com/a18280102190/Test_two.git

作业完成的不错。
需要注意一个小细节,路径最好使用 os.path.dirname(__file__)这种方式来获取当前路径,然后拼接找到你所需要的路径,这样更稳妥。否则切换一个路径去执行你的脚本,就会找不到你要的数据。

作业完成的不错。需要注意小细节,强制等待尽量少用, 即使必须用,也最好不要加太长时间的等待,影响用例的执行效率。

谢谢老师,已修改。

https://github.com/len-zhang/Hogwarts_appium_zuoye.git

https://github.com/shifangxue/Hogwarts_LG3

封装PO的思路可以。
注意细节的问题:
1、尽量在用例中减少强制等待
2、即然每条用例都要重新退回到main页面,就可以把这个方法提出来放在teardown里面

作业完成的不错
待优化:
1、减少强制等待使用
2、封装PO的时候尽量封装每一个小的功能点,第一次虽然很费力,后续维护会节省很多时间,复用性也会很强。
下面的这段功能封装的过于复杂。

https://github.com/z1069867141/hogwarts_lg

不错, 可以把复用driver的场景加入进去。

https://github.com/realtalk1007/hogwarts/tree/master/appium_weixin_po