自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 自动化测试工具之Airtest

由于工作原因,接触到了airtest这个工具,对比于之前使用的python+appium自动化测试框架,airtest简直是太方便了。关于airtest这个工具的详情,这里不赘述。这篇博客,简单记录几个在写自动化测试脚本时遇到的技术点。3. snapshot方法,是用来给设备显示屏截图的。需要的参数是截图文件的文件名,和图片说明。截取的图片默认是保存在log文件夹内,不过可以在输入文件名时,加上想要保存到的(相对)路径来更改。touch方法的参数,可以是图片,也可以是设备屏幕上的绝对坐标或者相对坐标。

2024-04-23 17:13:24 335 7

原创 基于window11+Vertrigo平台的TestLink工具搭建

作为一名测试狗,从入行开始到现在的这段职业生涯中,随着时间的推移和工作的深入,慢慢地对测试有了一些感悟。而对测试的管理,就是其中的一部分。曾经很长一段时间都在使用“离线”而“离散”的文档来管理测试计划,测试用例,测试报告等等。有时候,这样会导致一个混乱的局面,不同人手里的文档,很可能版本不同。比如就测试计划来说,它是需要按时维护的,尤其是在研发阶段,这就造成管理测试的文档有版本的更新,从而有不同的版本“散落在外”。如果信息不对等,需要花费精力去澄清。此外,文档数量众多,造成一种臃肿的感受。依稀记得曾经的上司

2022-02-10 18:01:01 1268

原创 自动上传产品信息到PDD平台商铺

其实Appium自动化测试的原理,不仅仅可以用于做自动化测试,实际上还可以用于更多的app操作,用来完成一些重复性的动作,比如,如果开了一个网店,就需要往店铺里上传一些商品信息,可实际上上传商品是非常重复的操作,上传图片,填写商品信息,再保存,再上传下一个商品....利用appium+python,可以实现这一系列的操作,轻松无压力。编写代码前的准备工作,和前面的appium自动化测试相差无几。另外,需要将产品信息事前编辑好,并保存在csv文件中。将产品图片拷贝到设备中,分文件夹保存(一个文件夹最好只存

2021-01-17 14:30:54 1580

原创 利用多进程同时启动多台设备上的APP

如题。#此代码是为了封装APP启动配置信息,log存储配置信息,方便日后开发自动化测试程序时调用,而且方便代码的维护修改import osimport yamlfrom appium import webdriverimport multiprocessing# import loggingimport logging.configCON_LOG = '../config/log.conf' logging.config.fileConfig(CON_LOG)logge

2020-12-27 09:44:33 392 5

原创 多线程与多进程 概述

使用多进程和多线程编程,可以同时处理多个任务,充分使用CPU性能,节约时间等。很多编程任务到最后都发展到需要同时处理多任务,就比如APP自动化测试,如果一个脚本一次只能在一台设备上测试APP,那就显得有些“低效”了,所以学习多线程和多进程也是很有必要的。以下的代码是作为一个示范,显示如何创建多线程以及多进程。#进程,是系统进行资源分配和调度的基本单位,是操作系统结构的基础#线程,有时被称为轻量级进程,是程序执行流的最小单元。线程是进程中的一个实体#一个进程可以包含多个线程,但是线程不能包含多个进程#

2020-12-26 21:30:12 333

原创 Appium 自动化测试之框架

上一篇已经根据模块化封装的思想,构建了一个自动化测试的框架雏形,当然,还很简陋和杂乱,日后维护管理,查询报告和截图都很不方便。接下来,需要对不同的部分,建立不同的文件夹来分类管理。具体可以分成以下几个文件夹。各个文件夹的作用,其实通过其名称便可理解。简要说明几个,baseView主要存放基类(相关定义见上一篇),businessView主要存放业务功能代码,也就是能实现要被测试的功能的代码,如登录功能,注册账户功能。common主要存放一些公共使用的代码,如公共使用的功能代码(弹窗检测和关闭,上下滑动屏

2020-12-17 16:21:22 451

原创 Appium自动化测试 进阶

所谓功能测试,其实无非是将被测APP的功能都使用一遍,看有没有出现报错,或者其他不应出现的结果。上一个脚本已经实现了通过代码来使用APP的一些功能,理论上其实是已经在测试了,但还远谈不上“自动化”。因为,不是说不用手亲自去屏幕上一个功能一个功能地点点点就叫自动化,自动化是一种思想,一种将测试规范化,模块化的处理。前期的开发需要一些工作,但后期的维护,修改会减少很多工作量,自动化是一种长期收益。假如按照上一个脚本的模式来开发测试,那还是相当于在手动测试,只不过是在手机屏幕上点点点和在电脑键盘上敲敲敲的区别罢

2020-12-13 10:34:58 264

原创 第一个appium自动化测试程序

如题。该程序实现的动作是,打开baiduMap,搜索地点,缩放地图。这是第一个自动化测试程序脚本,从代码层面来说,包含了一些自动化测试的基本要求,例如,app的参数分离以便日后修改管理(YAML的使用),日志采集以及采集配置分离(logging的使用),通过使用try…except增强代码的延续性。此外,关于app界面元素的定位和对应的操作,也是关键的内容。元素定位的方法有很多,要做到灵活运用。import timefrom capability_by_yaml import * #使用from..

2020-12-10 11:45:52 121 1

原创 Android APP 自动化测试初始

近来,忽然萌生了对APP自动化测试的兴趣。毕竟所处的时代,被称之为移动互联网时代。依然记得在2010年左右,第一次使用安卓智能手机的兴奋之情,下载并体验各种APP的快乐,那种心情,可能就是青春吧。多年之后的现在,这种心情也再难体会了,虽然使用的智能机越来越高配,性能越来越强劲,可是已经很久很久没有下载新的APP了,日常生活的需求,十几款APP已经足矣。虽然青春不再,但不能舍弃学习。求知的心态,可以打破年龄的束缚。自勉。对于Android APP自动化测试的工具,选择了目前主流的工具之一,appium。

2020-12-10 11:25:40 144 1

原创 快递邮费计算器 update

如题。用radioButton替换了之前的在文本框手动输入邮寄地址的方式。关于radioButton的属性,使用方法依然还需摸索。from PySide2.QtWidgets import QApplication, QMessageBox, QRadioButtonfrom PySide2.QtUiTools import QUiLoaderfrom PySide2.QtCore import QFileclass Stats: def __init__(self):

2020-08-30 12:20:02 225

原创 虚拟小银行 GUI

此段代码是曾经的一个小作业,模拟一个虚拟银行的业务,例如开户,取款,存款,转账之类的。和前面一样,也是用可视化编程重新写了,并且在之前的基础上增加了一些完善的地方。例如,将客户信息存入excel之中保存,每个ID身份只能最多开5个账户,完善了银行卡号可能重复的问题等等。在写代码的过程中,思考了很多以前从未注意的问题,也运用到了读写excel,可视化编程,函数和类这些方面的技巧,可以说是更进一步熟练了自己吧。总之是一次挺不错的编程体验,希望后续体验会越来越好。from PySide2.QtWidgets i

2020-08-24 17:48:02 299

原创 多线程编程初始

使用多线程编码会使得代码的执行的耗时更少,更充分地利用CPU的性能。以下代码是一个示范,显示如何创建多线程。转自白夜黑羽大佬。print('主线程执行代码') # 从 threading 库中导入Thread类from threading import Threadfrom time import sleep# 定义一个函数,作为新线程执行的入口函数def threadFunc(arg1,arg2): print('子线程 开始') print(f'线程函数参数是:{arg1

2020-08-09 18:15:45 119

原创 快递邮费计算器

一个简单的快递邮费计算器。是学编程初期的一个小作业,最开始是用纯脚本的方式实现,现在重写了,实现了可视化的界面。用到了动态加载ui文件的技巧。ui文件是由PySide2 自带的 Qt Designer工具生成的,这个工具用于生成UI界面非常方便,在这个工具里把想要的程序界面设计好以后,保存成一个ui文件,再在python里加载这个ui文件,省去了用代码敲出界面的一大麻烦。后续多找几个项目练习一下这个。from PySide2.QtWidgets import QApplication, QMessageB

2020-07-12 15:04:09 2137

原创 在A 窗口点击按钮来打开B窗口

如题。以下是基本版# -*- coding:utf-8 -*-from PySide2.QtWidgets import QWidget, QPushButton, QLabel, QApplicationimport sysclass A(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self

2020-07-05 17:27:37 344

原创 测试用例完成度计算器

有时候一个项目的测试用例很多,而且分成了好几组测试,如果想每隔一段时间汇总一下测试的进度,那么需要统计一下测试完成了多少用例,有多少是PASS,有多少是FAIL,有多少是BLOCKED等等。所以写了个可视化的小工具,可以帮助统计,一键生成报表。当然,这个源代码写得一言难尽,非常冗余,重复的代码太多。原本想通过输入参数来决定主窗口生成多少个文本框,但是没有摸索出来,后续再优化吧。。。通过这此的练习,对可视化编程有了初步的了解,后面也会继续加深这方面的学习。# -*- coding:utf-8 -*-i

2020-07-05 17:19:57 476

原创 从Jira导出Issue

公司使用Jira来管理测试bug了,尝试写了个脚本,可以一键从Jira里导出所需issue tickets(用label来定位)。当然Jira里对bug ticket的处理还有很多,而且用label来定位ticket也不是唯一的方式。注意以下2点。Python的Jira模块里可以使用JQL的方法来搜索此脚本运行前还需准备好一个excel文档,里面预先设置好跟搜索和导出bug相关的设置参数。import xlrdimport xlwtfrom jira import JIRAexcelfi

2020-07-05 16:59:29 1759

原创 读写Excel文档

一般简单的读写Excel文档方法import xlrdimport xlwtexcelfile1=xlrd.open_workbook(r'C:\Users\Evan\Desktop\jira_issues.xlsx')sheet1=excelfile1.sheet_by_name('summary')fieldname=[]fieldvalue=[]for i in range(8,20): fieldname.append(sheet1.cell(i,0).value)

2020-07-05 16:31:09 74

原创 记录,是为了更好地掌握

七月,湛蓝如洗的长空之下,岿然耸立的钢铁丛林里,他呆坐在某个角落。阳光毒辣,却彷佛是这座丛林最好的养料,抬头看着那些朝着天空生长的洞穴,他满眼都是自己二十二岁的模样。

2020-07-05 16:11:16 76

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除