APP`S兼容自动化-runCase()实现-终

21 篇文章 0 订阅
14 篇文章 1 订阅

主要测试前面已经完成了,现在就是runCase()主体。

  • 主体数据准备:
class run:
	def __init__(self, oldApp, callBackUrl):
		self.oldApp = oldApp
		self.callBackUrl = callBackUrl
		self.data = []  # 回调数据
  • 回调封装:
	def __callBack(self, json):
		time.sleep(TIME)
		url = self.callBackUrl
		a = requests.post(url=url, json=json)
		log.info("回调 {}; {} ; {}".format(url, json["msg"], a.content.decode()))
		romApk("./resTest/screenshot")  # 根据需要清除记录
		romApk("./resTest/old")  # 根据需要清除记录

def romApk(path):
	ls = os.listdir(path)
	for i in ls:
		os.remove(os.path.join(path, i))
  • 用例:(后期可以根据需要增加测试用例)
	def __cases(self, forDown, device, forPage):
		adbcase = adbtest(forDown[0], device, forPage[0][0])
		uicase = uitest(forDown[0], device, forPage[0][0])
		info = uicase.get_info()
		install_judge = adbcase.install_judge()
		if install_judge is True:
			log.info("APP安装成功:{};{};{}".format(device, forPage[0][0], forDown[0]))
			start_judge = uicase.start_judge()
			if start_judge is True:
				log.info("APP启动成功:{};{};{}".format(device, forPage[0][0], forDown[0]))
				run_judge = uicase.run_judge()
				if run_judge is True:
					log.info("APP运行成功:{};{};{}".format(device, forPage[0][0], forDown[0]))
				else:
					log.info("原APP无法兼容:{};{};{}".format(device, forPage[0][0], forDown[0]))
					self.data.append(
						{"device": device, "device_version": info[0], "device_model": info[1], "msg": "原APP无法兼容",
						 'img': toBase64(run_judge)})
			else:
				log.info("原APP无法启动:{};{};{}".format(device, forPage[0][0], forDown[0]))
				self.data.append(
					{"device": device, "device_version": info[0], "device_model": info[1], "msg": "原APP无法启动",
					 'img': None})
			uninstall(device, forPage[1][0])
		else:
			log.info("原APP无法安装:{};{};{}".format(device, forPage[0][0], forDown[0]))
			self.data.append(
				{"device": device, "device_version": info[0], "device_model": info[1], "msg": "原APP无法安装", 'img': None})

def toBase64(imgDir):
	with open(imgDir, 'rb') as f:
		base64_data = base64.b64encode(f.read())
		s = base64_data.decode()
		return 'data:image/jpeg;base64,%s' % s
  • runCase():
	def runCase(self):
		devices = findDevice()
		if len(devices) == 0:
			self.__callBack({"status": 1, "packName": "", "msg": "无设备"})
		else:
			forDown = downApk(self.oldApp, self.firmApp)
			if forDown is None:
				self.__callBack({"status": 1, "packName": '', "msg": "下载失败"})
			else:
				oldAppPage = get_apk_page(forDown[0])
				if oldAppPage is None or firmAppPage is None:
					self.__callBack({"status": 1, "packName": "", "msg": "包名获取失败"})
				else:
					ts = []
					for device in devices:
						ts.append(
							threading.Thread(target=self.__cases, args=[forDown, device, [oldAppPage]]))
					for t in ts:
						t.start()
					for t in ts:
						t.join()
					self.__callBack({"packName": oldAppPage[0], "status": 0, "msg": "测试完成", "data": self.data})

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值