UI自动化框架说明

UI自动化框架说明

`本帖的ui自动化框架,取材于github上某个湖南老乡的框架;结构清晰,遵循PO模式,通过逻辑层-处理层-用例配置整个结构结构清晰明了;实现了处理逻辑和数据分离;有利于平台化`

___ 大纲 ___

1
2
3
4
框架的整体结构
代码模块的结构,文件说明
框架的执行过程
框架优化/改动以适应我们产品

___ 框架整体结构 ___
alt_text

框架整体构成由五部分构成;分别是runner(入口)/TestCase(控制层)/PageObject(逻辑层)/日志文件/yaml配置模块/报告模块

___ runner(入口) ___

android入口程序文件:Runner/runner.py ios入口程序文件:Runner/runner.py
__ 入口程序代码review __

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
if __name__ == '__main__':

#ios环境需要手动杀掉adb,杀掉win和mac上的adb
kill_adb()
#获取imei
devicess = AndroidDebugBridge().attached_devices()
if len(devicess) > 0:
#创建log里面的文件,先删旧文件,然后将数据写入新文件
mk_file()
#存多设备数据,每个设备为一个字典
l_devices = []
for dev in devicess:
#设备数据,含imei,包名,端口,备用端口,系统端口
app = {}
app["devices"] = dev
#初始化安装应用
init(dev)
app["port"] = str(random.randint(4700, 4900))
app["bport"] = str(random.randint(4700, 4900))
app["systemPort"] = str(random.randint(4700, 4900))
app["app"] = PATH("../app/com.ximalaya.ting.android.apk") # 测试的app路径,喜马拉雅app
#构造数据
l_devices.append(app)
#启动appium服务
appium_server = AppiumServer(l_devices)
appium_server.start_server()
#执行操作
runnerPool(l_devices)
#结果怎么单独写入excel
writeExcel()
appium_server.stop_server(l_devices)
else:
print("没有可用的安卓设备")

欢迎关注我的其它发布渠道