Appium+Python之测试数据与脚本分离
如果脚本中有很多的魔法数据,那代码的复用性就不会很高,所以我们需要将测试数据和脚本分离。
思路:将测试数据放在一个json文件中,然后写一个读取json文件的基类,测试用例中通过调基类中方法来获取json文件中测试数据。
S1:先在框架中建立一个json文件DataResource.json,用于存放测试数据

{
"pm": {
"userName": "test1",
"password": ""
},
"gov": {
"userName": "test2",
"password": ""
}
}
S2:建立读取json文件的基类BaseJson.py

# -*- coding:utf-8 -*-
import json class Dict(dict):
__setattr__ = dict.__setitem__
__getattr__ = dict.__getitem__ def dict_to_object(dict_obj):
if not isinstance(dict_obj, dict):
return dict_obj
inst = Dict()#类实例化
#循环遍历字典的key、value
for k, v in dict_obj.items():
inst[k] = v
return inst #获取json文件内容
def get_json():
path = r'E://testing_code/code/SmartSiteTestScript/data/DataResource.json'
with open(path, encoding='utf-8') as f:
return dict_to_object(json.loads(f.read()))#读取json文件内容(字符串类型),通过json.loads()将字符串转换成字典
S3:测试用例中通过调基类中方法来获取json文件中测试数据
import unittest
from src.pages.home.Login import Login
from config import DriverConfigure #测试用例
class Test1(unittest.TestCase): @classmethod
def setUpClass(cls):
driver = DriverConfigure.get_driver()
cls.driver = driver
json_obj =BaseJson.get_json()
cls.json_obj =json_obj def setUp(self):
self.login_page = Login(self.driver)
self.user = self.json_obj['pm']['userName']#获取用户名测试数据
self.pwd = self.json_obj['pm']['password']#获取密码测试数据 def test_a_login_in(self):
# 登录
self.login_page.login_in(self.user, self.pwd) def tearDown(self):
pass @classmethod
def tearDownClass(cls):
cls.driver.quit() if __name__ == '__main__':
unittest.main()
这样就可以实现测试数据和脚本的分离啦!
Appium+Python之测试数据与脚本分离的更多相关文章
- Appium+Python app自动化测试之脚本启动和停止Appium服务
研究了一段时间的Appium android app的自动化测试,工作中需要连接多台手机终端同时执行测试用例,我实现的方式是获取用例中需要执行用例的设备id个数以及实际连接到的设备数(通过adb de ...
- appium+python 多设备并行执行脚本【转】
1.ready.py文件 def getport(): aport = random.randint(4700, 4900) # 判断端口是否被占用 while getDeviceInfo.is_op ...
- Appium + Python App自动化第一个脚本
今天跟大家讲解一个Appium和Python App自动化的脚本.[1]打开你的夜神模拟器(或者连接你的手机) [2]打开桌面的Appium [3]下载你要测的App的apk文件,放到桌面[4]拖动你 ...
- 如何将自己的测试脚本分离成PO模式的测试框架
1 PO模式 1.1 PO模式介绍 Page Object Model 测试页面和测试脚本分离,即页面封装成类,供测试脚本调用. (将项目分为page.py和test.py) 测试用例:就是excel ...
- appium+Python真机运行测试demo的方法
appium+Python真机运行测试demo的方法 一, 打开手机的USB调试模式 二, 连接手机到电脑 将手机用数据线连接到电脑,并授权USB调试模式.查看连接的效果,在cmd下运行命 ...
- 使用datatable 将测试数据与业务分离
当基本一致的业务流程, 需要测试繁杂的测试数据时,就可以将测试数据参数化了,同时使用datatable来实现测试数据与业务分离,这个方法在我现在的项目中应用在很多地方,感觉超级方便,现对工作中的应用做 ...
- appium+python做移动端自动化测试
1 导言 1.1 编制目的 该文档为选用Appium作为移动设备原生(Native).混合(Hybrid).移动Web(Mobile Web)应用UI自动化测试的相关自动化测试人员.开发人员等提供 ...
- appium python ios 自动化
mac下搭建appium python selenium来针对ios应用进行自动化测试,并不是官网上的例子,自己程序调试成功. 前言:因为appium的安装前要先确定nodejs的安装.python的 ...
- appium+Python 启动app(二)
我们上步操作基本完成,下面介绍编写Python脚本启动app 打开我们pycharm新建.py文件 第一步:输入Python脚本代码: #coding=utf-8 from appium import ...
随机推荐
- 小程序内置组件swiper,circular(衔接)使用小技巧
swiper,关于滑块的一些效果无缝,断点,视差等等...我想这里就不用做太多的赘述,这里给大家分享一下实战项目中使用circular(衔接)的一点小特性.小技巧,当然你也可以理解为遇到了一个小坑,因 ...
- Python---面向对象---案例
a = 5print(5/10)# 地板除(功能类似于数学模块当中floor()向下取整操作)print(5//10)print(a%10)b = 25print(b/10)print(b//10)p ...
- json对象之间的转化
json字符串转化为 1.使用JSON.parse()函数 使用eval()函数 2.json对象转化为json字符串 使用JSON.stringify()
- 部署至Oracle数据库的注意事项
部署至Oracle数据库的注意事项 安装数据库之前1)检查计算机名,如果是乱码,改一下名字 2)有杀毒软件,能关则关 但是最好征求用户的同意 3)装两个一起解压databa ...
- 数组Array方法: indexOf、filter、forEach、map、reduce使用实例
- HDU 1298 T9 ( 字典树 )
题意 : 给你 w 个单词以及他们的频率,现在给出模拟 9 键打字的一串数字,要你在其模拟打字的过程中给出不同长度的提示词,出现的提示词应当是之前频率最高的,当然提示词不需要完整的,也可以是 w 个单 ...
- Springboot-H2DB
为什么在Springboot中用H2DB 用Springboot开发需要连接数据库的程序的时候,使用H2DB作为内存数据库可以很方便的调试程序. 怎么用 1.加入依赖 <dependency&g ...
- MacOS上zsh环境设置默认jdk
进入home目录 cd ~ 修改.zprofile文件 vi .zprofile 按i进入vim插入模式,添加以下代码 export JAVA_HOME="/Library/Java/Jav ...
- SpringMVC开发中遇到的异常1:No primary or default constructor found for interface java.util.List
Request processing failed; nested exception is java.lang.IllegalStateException: No primary or defaul ...
- 解决RHEL6 vncserver 启动 could not open default font 'fixed'错误.
https://blog.csdn.net/silencegll/article/details/51320629