![bf20979203a06d3b265fd10f7a44cb4c.png](https://i-blog.csdnimg.cn/blog_migrate/a609f90046ff37d75295e63d54984ee2.jpeg)
Appium和Selenium一个测试app、一个测试web应用,但是在框架设计上其实可以使用一套PO模式。
![d872ffa097968a0374cb00f757ab6657.png](https://i-blog.csdnimg.cn/blog_migrate/042c628f632907731911b52d857f3635.jpeg)
一、目录说明
工程目录分为:common、data、public、report、screenshot、testcase、run_case.py
![dbf63ab7bbaf0f23a689c1b1889e90fc.png](https://i-blog.csdnimg.cn/blog_migrate/a5e3d2720ed0702874d0b9e14ad83408.jpeg)
二、目录讲解
run_case.py
测试脚本执行的入口。
在脚本中指定导入需要执行的测试脚本模块,然后创建测试集加载导入的测试脚本模块。
![220df71464535f9e2e96f25ce9418e79.png](https://i-blog.csdnimg.cn/blog_migrate/47e8285f0ea517dd18e48663ea94db5e.jpeg)
加载生成测试报告模板:
![e77f63cad7f300d6478fb3cd45109194.png](https://i-blog.csdnimg.cn/blog_migrate/e3d4970b34f38f8cf3a1e6a8e9cca061.jpeg)
其中,suiteTest是上边创建的测试集。
Testcase
测试用例模块脚本,每个模块或功能集合创建一个测试脚本。便于维护。
定义testcase类,编写测试脚本。
Common
定义封装的一些函数类(比如一些基本的操作的封装)、测试的一些公共函数(比如读写文件)。
![588082febe54708ee159ff18c3c76ea2.png](https://i-blog.csdnimg.cn/blog_migrate/e5ef828a22548351e9ae416907b8910c.jpeg)
在测试脚本setUp中导入,然后脚本中就可以使用。
Data
测试数据准备。
比如login登录不同账号,测试场景:登录成功、登录失败情况。
页面控件封装。
不同的页面以下边这种方式进行分开:
![852bd6aa38ec7f1b04f0b116af67cf8d.png](https://i-blog.csdnimg.cn/blog_migrate/33aad55705923b922e690ddcd931f8e2.jpeg)
如果某些页面控件很多或复杂,还可以封装到不同的yaml文件,并用比较明显的标识来说明。
Public
测试脚本的公共模块封装。
比如可以封装登录模块,或者不同的业务场景测试用例,但是测试的流程步骤大体相同,那么可以封装成公共模块。
在公共模块中可以这样写:
![f85aa4e260358a19544ffe63ef7d056e.png](https://i-blog.csdnimg.cn/blog_migrate/bd45418aab508acc016e11990227975b.jpeg)
然后在测试脚本中:
![99c07940221ad25e1ac267802661d2f0.png](https://i-blog.csdnimg.cn/blog_migrate/703aac807e957570be6bd3637c749d7f.jpeg)
使用公共模块方式可以大大减少代码量,进行模块抽离,同时测试脚本中结构更清晰。
Report:
测试报告模板及报告生成路径。
可以直接打开测试报告,会包括测试的用例集/测试用例、执行通过、失败、错误的情况,失败的原因等。
![b4d0d27fd382edc2b4b6abf4a895f960.png](https://i-blog.csdnimg.cn/blog_migrate/7b7684f89131fffcd3ae549114019d45.jpeg)
screenshot:
截图保存的地址。以时间命名截图,在出错时可以进行问题分析。