07 2021 档案
摘要:MySQL-数据表 MySQL-CREATE TABLE创建表 要在数据库中创建一个新表,可以使用MySQL CREATE TABLE语句。 CREATE TABLE [IF NOT EXISTS] table_name( column_list #在column_list部分指定表的列表。 ) e
阅读全文
摘要:游戏测试包括: 1.集成测试。前期为对整个系统测试包括数据库,游戏环境等。 2.游戏可玩性测试。即游戏有什么优点可以吸引人,比如游戏较小且可玩性高,游戏的风格与特色,mod和dlc等要制作精美且bug要少,比如像上古5和真三国无双系列都是安装mod过于繁琐且bug几率高,经常重新做有失玩家耐性。 3
阅读全文
摘要:作为一个测试员,主要的目标是: 找到Bugs 复现Bugs 提交Bugs报告 次要的目标是: 验证Bugs已经被修复 确实这个游戏好玩 Bug严重程度: 1. Low 低 修复不修复都没有多大不同。不影响运行流程。 2. Medium 中等 应该修复 3. High 高 4. Critical 致命
阅读全文
摘要:df 命令 检查磁盘空间占用情况(并不能查看某个目录占用的磁盘大小)。 命令格式:df [option] -h 以容易理解的格式(给人看的格式)输出文件系统分区使用情况,例如 10kB、10MB、10GB 等。-k 以 kB 为单位输出文件系统分区使用情况。-m 以 mB 为单位输出文件系统分区使用
阅读全文
摘要:ip netns 命令用来管理 network namespace。它可以创建命名的 network namespace,然后通过名字来引用 network namespace,所以使用起来很方便。 ip netns 命令格式如下:ip [ OPTIONS ] netns { COMMAND | h
阅读全文
摘要:笔者在《Linux mount 命令》一文中介绍了 mount 命令的基本用法,本文我们接着介绍 mount 命令的一些高级用法,比如 bind mounts(绑定挂载)和 shared subtree。 bind mounts 一个绑定挂载就是相关目录树的另外一个视图。典型情况下,挂载会为存储设备
阅读全文
摘要:mount 命令用来挂载文件系统。其基本命令格式为:mount -t type [-o options] device dirdevice:指定要挂载的设备,比如磁盘、光驱等。dir:指定把文件系统挂载到哪个目录。type:指定挂载的文件系统类型,一般不用指定,mount 命令能够自行判断。opti
阅读全文
摘要:目录 Help 输出所有的日志记录 匹配(match) 把日志保存到文件中 限定日志所能占用的最高容量 查看某次启动后的日志 查看指定时间段的日志 同时应用 match 和时间过滤条件 按 unit 过滤日志 通过日志级别进行过滤 实时更新日志 只显示最新的 n 行 控制输出 按可执行文件的路径过滤
阅读全文
摘要:chroot,即 change root directory (更改 root 目录)。在 linux 系统中,系统默认的目录结构都是以 /,即以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为 / 位置。 基本语法 chroot NEWROOT [COMMA
阅读全文
摘要:目录 预热 管理单个 unit 查看系统上的 unit 管理不同的操作环境(target unit) 检查 unit 之间的依赖性 相关的目录和文件 systemctl daemon-reload 子命令 总结 笔者在前文中概要的介绍了 systemd 的基本概念和主要特点。由于 systemd 相
阅读全文
摘要:ls 命令是 Linux 下最常用的命令之一,用来查询目录下的内容(list directory contents)。本文将介绍其基本的用法和一些典型的用例。笔者使用的测试环境为 ubuntu 16.04。 基本输出 直接在命令行中输入 ls 并回车。这是最精简的用法,因为我们省略了所有的选项和参数
阅读全文
摘要:SSH 是 Linux 下进行远程连接的基本工具,但是如果仅仅用它来登录那可是太浪费啦!SSH 命令可是完成远程操作的神器啊,借助它我们可以把很多的远程操作自动化掉!下面就对 SSH 的远程操作功能进行一个小小的总结。 远程执行命令 如果我们要查看一下某台主机的磁盘使用情况,是不是必须要登录到目标主
阅读全文
摘要:kill 命令的用途 kill 命令很容易让人产生误解,以为它仅仅就是用来杀死进程的。我们来看一下 man page 对它的解释:kill - send a signal to a process. 从官方的解释不难看出,kill 是向进程发送信号的命令。当然我们可以向进程发送一个终止运行的信号,此
阅读全文
摘要:简单的说,sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码。严谨些说,sudo 允许一个已授权用户以超级用户或者其它用户的角色运行一个命令。当然,能做什么不能做什么都是通过安全策略来指定的。sudo 支持插件架构的安全策略,并
阅读全文
摘要:第一部分:Linux Shell 简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Ken Thompson 的
阅读全文
摘要:安装方式一:通过下载官方安装包安装 由于Linux安装MySQL会遇到各种依赖问题,本博文整理了下安装方放,避免遇到依赖问题 查看是否自带mariadbrpm -qa|grep mariadb然后卸载rpm -e packagename --nodeps下载完整rpm包:https://dev.my
阅读全文
摘要:Git是目前世界上最先进的分布式版本控制系统,没有之一,对,没有之一。著名的同性交友网站-Github,使用的就是Git存储。无数的开源项目在Github上汇聚,由此可知Git的威力。 一、Git简介 Git是一个分布式的版本控制系统,与集中式的版本控制系统不同的是,每个人都工作在通过克隆建立的本地
阅读全文
摘要:功能说明 free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略 语法 free [参数] 参数 -b : 以Byte为单位显示内存使用情况。 -k : 以KB为单位显示内存使用情况。 -m : 以MB为单位显示内存使用情况。 -h: 以适
阅读全文
摘要:Linux nc命令用于设置路由器。 执行本指令可设置路由器的相关参数。 nc命令的作用 实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口 端口的扫描,nc可以作为client发起TCP或UDP连接 机器之间传输文件 机器之间网络测速 nc命令的安装 [ro
阅读全文
摘要:linux curl是通过url语法在命令行下上传或下载文件的工具软件,它支持http,https,ftp,ftps,telnet等多种协议,常被用来抓取网页和监控Web服务器状态。 语法:# curl [option] [url] 常见参数: 用参数 参数描述 -I/--head 只显示传输文档,
阅读全文
摘要:1.命令格式:wc [选项]文件... 2.命令功能: 统计指定文件中的行数、字符数,字节数,并将统计结果显示输出。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。 3.命令参数: -c 统计字节数。 -l 统计行数。 -m 统计字节数。这个标志不能与 -c 标志一起使用。
阅读全文
摘要:一,uniq干什么用的 文本中的重复行,基本上不是我们所要的,所以就要去除掉。linux下有其他命令可以去除重复行,但是我觉得uniq还是比较方便的一个。使用uniq的时候要注意以下二点 1,对文本操作时,它一般会和sort命令进行组合使用,因为uniq 不会检查重复的行,除非它们是相邻的行。如果您
阅读全文
摘要:sort是在Linux里非常常用的一个统计命令 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。 其语法及常用参数格式: sort [-bcfMnrtk][源文件][-o 输出文件] 补充说明:sort
阅读全文
摘要:dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2 参数注释: if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file > of=文件名:输出文件名,缺省为
阅读全文
摘要:iftop命令可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等,详细的将会在后面的使用参数中说明。 安装iftop命令:$yum install -y iftop yum install flex byacc libpcap ncurses ncurses-devel lib
阅读全文
摘要:Linux系统中的iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分
阅读全文
摘要:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。 在linux系统下输入top命令如下: 参数含义 top - 00:10:55 up 81 days, 6:00, 17 users, load average: 0.00, 0
阅读全文
摘要:1. sed简介 sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使
阅读全文
摘要:awk = "Aho Weiberger and Kernighan" 三个作者的姓的第一个字母 awk 是 Linux 下的一个命令,同时也是一种语言解析引擎 awk 具备完整的编程特性。比如执行命令,网络请求等 精通 awk,是一个 Linux 工作者的必备技能 语法:awk 'pattern{
阅读全文
摘要:grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来 可用于数据查找定位 先列举出测试工作常用的grep命令和意
阅读全文
摘要:一.故障现象: [root@c1node01 ~]# service network restart Shutting down loopback insterface: [ OK ] Bringing up loopback insterface: [ OK ] Bringing up inter
阅读全文
摘要:开关机、重启、注销 shutdown -h now #立即关机 reboot #重启 exit #注销当前用户 连接服务器: sh -p22 username@host(默认端口22可以省略) 回车输入密码 默认进入家目录 查看帮助 --help man 查看文件:ls 显示隐藏目录 :ls -a
阅读全文
摘要:Linux系统最初由芬兰赫尔辛基大学的Andrew S.Tanenbaum写的MINIX操作系统演变而来,这是一个小型操作系统,主要用于教学,1991年1月,Tanenbaum的学生Linus Torvalds发现老师的操作系统 不能满足自己的需要,自己开始研发操作系统,1991年9月,Linux0
阅读全文
摘要:一、导入键盘事件 1.导入语句 想使用selenium中的键盘事件,首先我们必须导入Keys包,需要注意的是包名称Keys首字母需要大写。Keys类中提供了几乎所有的键盘事件包括组合按键如 Ctrl+A、 Ctrl+C 等。 from selenium.webdriver.common.keys i
阅读全文
摘要:一、介绍 HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份YAML/JSON脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。 官方文档:https://docs.httprunner.org/ 二、框架设计理念 充分复用优秀的开源项目,不追
阅读全文
摘要:Airtest是网易开发的手机UI界面自动化测试工具,它原本的目的是通过所见即所得,截图点击等等功能,简化手机App图形界面测试代码编写工作。 安装和使用 安装Airtest 从Airtest官网:https://airtest.netease.com下载Airtest,然后像安装普通软件一样安装即
阅读全文
摘要:Flask-SQLAlchemy 使用起来非常有趣,对于基本应用十分容易使用,并且对于大型项目易于扩展。 官方文档:https://flask-sqlalchemy.palletsprojects.com/en/2.x/ 中文文档:http://www.pythondoc.com/flask-sql
阅读全文
摘要:Flask-RESTful 是一个 Flask 扩展,它添加了快速构建 REST APIs 的支持。它当然也是一个能够跟你现有的ORM/库协同工作的轻量级的扩展。Flask-RESTful 鼓励以最小设置的最佳实践。如果你熟悉 Flask 的话,Flask-RESTful 应该很容易上手。 关于fl
阅读全文
摘要:Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务。本文参考自Flask官方文档, 英文不好的同学也可以参考中文文档 1.安装flask pip install flask 2.简单上手 一个最小的 Flask 应用如下: from flas
阅读全文
摘要:先前博客有介绍pytest测试框架的安装及使用,现在来聊聊pytest可以生成哪些测试报告 1.allure测试报告 关于allure报告参见先前的一篇博文:https://www.cnblogs.com/feng0815/p/13792188.html ,这里不再赘述 2.生成resultlog文
阅读全文
摘要:简介 WebView是android中一个非常重要的控件,它的作用是用来展示一个web页面。它使用的内核是webkit引擎,4.4版本之后,直接使用Chrome作为内置网页浏览器。 简单来说wenview就是我们常说的H5页面,它可以想web页面那样利用webdriver进行定位 关于Webview
阅读全文
摘要:今天安装frida是报错,内容如下 看报错信息是SSL 证书 问题,百度查了下,Python 2.7.9 之后版本引入了一个新特性:当你urllib.urlopen一个 https 的时候会验证一次 SSL 证书 ,当目标使用的是自签名的证书时就会爆出该错误消息 也提供了解决办法: import s
阅读全文
摘要:强制等待:sleep() import time sleep(5) #等待5秒 设置固定休眠时间,单位为秒。 由python的time包提供, 导入 time 包后就可以使用。缺点:不智能,使用太多的sleep会影响脚本运行速度。 隐式等待:implicitly_wait() driver.impl
阅读全文
摘要:要求: 需要退出当前所有的谷歌浏览器(特别注意) 找到chrome的启动路径 启动命令windows:chrome --remote-debugging-port=9222 启动命令mac:Google\ Chrome --remote-debugging-port=9222 配置环境变量 mac
阅读全文
摘要:文件上传 input标签可直接使用send_keys(文件地址)上传文件 self.driver.find_element_by_id('上传按钮id').send_keys('文件路径+文件名') 下面以百度图片搜索上传图片为例 #!/usr/bin/python # -*- coding: UT
阅读全文
摘要:WebDriver提供了execute_script()方法来执行JavaScript代码 具体DOM操作使用方法见之前写的一篇博文:https://www.cnblogs.com/feng0815/p/8215768.html 关于Webdriver自动化测试之执行JavaScript脚本可直接参
阅读全文
摘要:一、多窗口处理 在进行自动化测试的时候,经常会遇到点击一个连接或按钮后,会打开一个新的页面,需要我们在新的窗口进行操作,这个时候就需要使用Webdriver里的switch_to_window方法了 #!/usr/bin/python # -*- coding: UTF-8 -*- """ @aut
阅读全文
摘要:TouchAction,类似于ActionChains,ActionChains只是针对PC端程序鼠标模拟的一系列操作,对H5页面操作是无效的。TouchAction可以对H5页面操作,通过TouchAction可以实现点击、滑动、拖拽、多点触控,以及模拟手势等各种操作。 关于 ActionChai
阅读全文
摘要:Allure测试报告框架帮助你轻松实现”高大上”报告展示。本文通过示例演示如何从0到1集成Allure测试框架。重点展示了如何将Allure集成到已有的自动化测试工程中、以及如何实现报表的优化展示。Allure非常强大,支持多种语言多种测试框架,无论是Java/Python还是Junit/TestN
阅读全文
摘要:1、失败重跑 pytest-rerunfailures 安装:pip install pytest-rerunfailures 使用:pytest test_class.py --reruns 5 --reruns-delay 1 -vs (失败后重新运行5次,每次间隔1秒) @pytest.mar
阅读全文
摘要:pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点: 简单灵活,容易上手 支持参数化 能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests) pytest具有很多第三方插件,并且可以
阅读全文
摘要:默认情况下 pip 使用的是国外的镜像,在下载的时候速度非常慢,本文介绍2中处理方法 一) 1、设置超时时间 pip --default-timeout=1000 install -U 模块名 例如pip --default-timeout=1000 install -U matplotlib来下载
阅读全文
摘要:在前面的章节我们已经了解了面向对象的入门知识,知道了如何定义类,如何创建对象以及如何给对象发消息。为了能够更好的使用面向对象编程思想进行程序开发,我们还需要对Python中的面向对象编程进行更为深入的了解。 @property装饰器 之前我们讨论过Python中属性和方法访问权限的问题,虽然我们不建
阅读全文
摘要:活在当下的程序员应该都听过“面向对象编程”一词,也经常有人问能不能用一句话解释下什么是“面向对象编程”,我们先来看看比较正式的说法。 把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(in
阅读全文
摘要:在统计python代码 执行速度时要使用到time包,在查找相关函数时有time.time()和time.clock()两个函数可供选择。而两者是有区别的: cpu 的运行机制:cpu是多任务的,例如在多进程的执行过程中,一段时间内会有对各进程被处理。一个进程从开始到结束其实是在这期间的一些列时间片
阅读全文
摘要:字符串是我们在编程的时候很常用的一种数据类型,检查会在字符串里面查找一些内容,对于比较简单的查找,字符串里面就有一些内置的方法可以处理,对于比较复杂的字符串查找,或者是有一些内容经常变化的字符串里面查找,那么字符串内置的查找方法已经不好使了,满足不了我们的要求,这个时候就得用正则表达式了,正则表达式
阅读全文
摘要:一、map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把list 的每个元素依次作用在函数 f 上,得到一个新的 list 并返回。 例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9] 如果希望把list的每个元素都作平方
阅读全文
摘要:什么是爬虫? 爬虫是什么呢,就是地上爬的小虫子,就是爬虫咯。呵呵,开个玩笑,一般说的爬虫都是网络爬虫。那什么是网络爬虫呢,百度百科的解释是这样子的: 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一
阅读全文
摘要:前言 现在很多网站的都大量使用JavaScript,或者使用了Ajax技术。这样在网页加载完成后,url虽然不改变但是网页的DOM元素内容却可以动态的变化。如果处理这种网页是还用requests库或者python自带的urllib库那么得到的网页内容和网页在浏览器中显示的内容是不一致的。 解决方案
阅读全文
摘要:通过appium-desktop定位元素 ClassName Android Android的class属性对应ClassName定位方式,ClassName一般都是会重复的,可以通过index来获取需要的元素。(从0开始查找dom树中的同名class属性) iOS iOS的type属性对应CLas
阅读全文
摘要:Switch 我们在UI自动化测试时,总会出现新建一个tab页面、弹出一个浏览器级别的弹框或者是出现一个iframe标签,这时我们用WebDriver提供的Api接口就无法处理这些情况了。需要用到Selenium单独提供的模块switch_to模块 引用路径 # 第一种方式可以通过直接导入Switc
阅读全文
摘要:首先,所需安装软件及推荐安装版本: Java 1.8版本 Android SDK Node js(>=10版本),npm(>=6版本) Python3 appium-desktop appium python client 友情提示:安装此环境较为复杂,请保持平和的心态安装~~~ 第一步 安装JDK
阅读全文
摘要:安装建议: Nodejs 12 Appium 建议1.15 Java 1.8 SDK build-tools/ 下对应的版本,需要使用<=29的版本 第一步:安装JDK 安装JDK,本机如果带有1.7及以上版本的,则可忽略此安装步骤。 JDK的安装包,百度下载即可。安装完成后配置环境变量。 cmd下
阅读全文
摘要:PyCharm是由JetBrains公司开发的提供给Python专业的开发者的一个集成开发环境,它最大的优点是能够大大提升Python开发者的工作效率,为开发者集成了很多用起来非常顺手的功能,包括代码调试、高亮语法、代码跳转、智能提示、自动补全、单元测试、版本控制等等。此外,PyCharm还提供了对
阅读全文
摘要:我们在写case的时候,如果用例的操作是一样的,就是参数不同,比如说要测一个登陆的接口,要测正常登陆的、黑名单用户登陆的、账号密码错误的等等,在unittest里面就要写多个case来测试。 这样的情况只是调用接口的时候参数不一样而已,再写多个case的话就有点多余了,那怎么办呢,就得把这些参数都写
阅读全文
摘要:Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作。 在说unittest之前,先说几个概念: TestCase 也就是测试用例 TestSuite 多个测试用例集合在一起,就是TestSuite Test
阅读全文
摘要:今天给大家分享一个简单的python脚本,使用python进行http的接口测试,脚本很简单,逻辑是:读取excel写好的测试用例,然后根据excel中的用例内容进行调用,判断预期结果中的返回值是否和返回报文中的值一致,如果不一致则根据用例标题把bug提交到bug管理系统,这里使用的bug管理系统是
阅读全文
摘要:我们在开发程序的时候,有时候需要开发一些自动化的任务,执行完之后,将结果自动的发送一份邮件,python发送邮件使用smtplib模块,是一个标准包,直接import导入使用即可,代码如下: import smtplib from email.mime.text import MIMEText em
阅读全文
摘要:一、线程&进程 对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了一个Word进程。进程是很多资源的集合。 有些进程还不止同时干一件事,比如Word,
阅读全文
摘要:一、面向对象编程 面向对象--Object Oriented Programming,简称oop,是一种程序设计思想。在说面向对象之前,先说一下什么是编程范式,编程范式你按照什么方式来去编程,去实现一个功能。举个例子,你要做饭,可以用电磁炉,也可以用煤气灶。不同的编程范式本质上代表对各种类型的任务采
阅读全文
摘要:requests介绍 python操作网络,也就是打开一个网站,或者请求一个http接口,使用urllib模块。 urllib模块是一个标准模块,直接import urllib即可,在python3里面只有urllib模块,在python2里面有urllib模块和urllib2模块。 import
阅读全文
摘要:一、异常处理 在程序运行过程中,总会遇到各种各样的错误。程序一出错就停止运行了,那我们不能让程序停止运行吧,这时候就需要捕捉异常了,通过捕捉到的异常,我们再去做对应的处理。 下面我们先写一个函数,实现除法运算。 def calc(a,b): return a/b print(calc(5,1))#调
阅读全文
摘要:分享一段代码,开发了3个接口: 1、上传文件 2、查看所有文件 3、下载文件 使用python开发,需要安装flask模块,使用pip install flask安装即可,代码量特别少,就能实现,加上注释总共35行代码,特别的简单,代码如下: import flask,os,time from fl
阅读全文
摘要:普遍的apk性能测试,主要是以下七类 1、响应 2、内存 3、cpu 4、FPS (app使用的流畅度) 5、GPU过度渲染 6、耗电 7、耗流 (app除了这些性能测试,还有:手机版本号兼容性,屏幕分辨率兼容性,稳定性测试,安全测试等,后续会持续更新… 流量测试同这些一起更新,这里就不在说明了 )
阅读全文
摘要:说来也是巧,今天和一个朋友聊天,说他运气不错应该买彩票,于是就想到了双色球的规则,就写了几行代码产生双色球号码,代码如下: import random,time def process_int(x): '''这个函数用来把int类型转成字符串''' x = str(x) if len(x)==1:
阅读全文
摘要:我们在写代码的时候,经常会操作数据库,增删改查,数据库有很多类型,关系型数据库和非关系数据库,这里咱们介绍一下python怎么操作mysql、redis和mongodb。 一、python操作mysql数据库 python3中操作mysql数据需要安装一个第三方模块,pymysql,使用pip in
阅读全文
摘要:一、python操作excel,python操作excel使用xlrd、xlwt和xlutils模块,xlrd模块是读取excel的,xlwt模块是写excel的,xlutils是用来修改excel的。这几个模块使用pip安装即可,下面是这几个模块的使用。 二、xlrd模块,xlrd模块用来读exc
阅读全文
摘要:这周学习了装饰器和生成器,写下博客,记录一下装饰器和生成器相关的内容。 一、装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里面每个函数都加一个功能,用来
阅读全文
摘要:一、模块、包 什么是模块? 模块实质上就是一个python文件,它是用来组织代码的,意思就是说把python代码写到里面,文件名就是模块的名称,test.py test就是模块名称。 什么是包? 包,package本质就是一个文件夹,和文件夹不一样的是它有一个__init__.py文件,包是从逻辑上
阅读全文
摘要:1、你是一个高级测试工程师,现在要做性能测试,需要你写一个函数,批量生成一些注册使用的账号。 产生的账号是以@163.com结尾,长度由用户输入,产生多少条也由用户输入,用户名不能重复,用户名必须由大写字母、小写字母、数字组成,结果如下图: 2、测试机器的磁盘太小,经常报警,要写一个清理日志的脚本,
阅读全文
摘要:在说函数前,先说一下列表,前面已经说了,一个列表内可以嵌套多个列表,如下 软件测试 = ['功能测试','自动化测试','安全测试',['性能测试',['脚本开发','压测','性能调优']]] 但,如何将每个嵌套的列表元素都打印出来呢,直接用print? 我们看到,直接用print编译器只会把它当
阅读全文
摘要:这篇博客来说一下python对文件的操作。 在Python中实现文件的读写操作其实非常简单,通过Python内置的open函数,我们可以指定文件名、操作模式、编码信息等来获得操作文件的对象,接下来就可以对文件进行读写操作了。这里所说的操作模式是指要打开什么样的文件(字符文件还是二进制文件)以及做什么
阅读全文
摘要:一、数据类型是什么鬼? 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。 二、整形和浮点型 整形也就是整数类型(int)的,在python3
阅读全文
摘要:☀ 什么是字典 字典是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: d = {key1 : value1, key2 : value2 } 键必须是唯一的,但值则不必
阅读全文
摘要:一、什么是列表、元组 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。 Python有6个序列的内置类型,但最常见的是列表和元组。 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。 列表
阅读全文
摘要:☞写在前面 在说Python之前,我想先说一下自己为什么要学Python,我本人之前也了解过Python,但没有深入学习。之前接触的语言都是Java,也写过一些Java自动化用例,对Java语言只能说有所掌握,但离精通还有较大的距离。Java我先前也有学过,但我觉得学起来还是比较吃力的,特别在自学状
阅读全文
摘要:一、导入键盘事件 1.导入语句 想使用selenium中的键盘事件,首先我们必须导入Keys包,需要注意的是包名称Keys首字母需要大写。Keys类中提供了几乎所有的键盘事件包括组合按键如 Ctrl+A、 Ctrl+C 等。 from selenium.webdriver.common.keys i
阅读全文
摘要:Airtest是网易开发的手机UI界面自动化测试工具,它原本的目的是通过所见即所得,截图点击等等功能,简化手机App图形界面测试代码编写工作。 安装和使用 安装Airtest 从Airtest官网:https://airtest.netease.com下载Airtest,然后像安装普通软件一样安装即
阅读全文
摘要:目标 从源码制作出可运行APP,支持测试工作 各种自动任务 Daliy Build打包 Daliy Build发布 Daliy Build打包UI自动化测试 利用技术帮忙“做杂活” 优势 重复是劳动任务,减少人力成本,提升工作效率 Build不再是阻碍测试进度的因素 自动化重用率高,维护评率低 涉及
阅读全文
摘要:pageobject设计思想出自于马丁·福勒(Martin Flower,对,没错,就是软件教父)官网的一篇文章,官网连接:https://martinfowler.com/bliki/PageObject.html 还有一篇针对官网文章的中文翻译版:http://huangbowen.net/bl
阅读全文
摘要:adb是什么 adb的全称为Android Debug Bridge,就是起到调试桥的作用。它就是一个命令行窗口,用于通过电脑端与模拟器或者是设备之间的交互。 adb有什么用 借助adb工具,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。其
阅读全文
摘要:强制等待:sleep() import time sleep(5) #等待5秒 设置固定休眠时间,单位为秒。 由python的time包提供, 导入 time 包后就可以使用。缺点:不智能,使用太多的sleep会影响脚本运行速度。 隐式等待:implicitly_wait() driver.impl
阅读全文
摘要:要求: 需要退出当前所有的谷歌浏览器(特别注意) 找到chrome的启动路径 启动命令windows:chrome --remote-debugging-port=9222 启动命令mac:Google\ Chrome --remote-debugging-port=9222 配置环境变量 mac
阅读全文
摘要:文件上传 input标签可直接使用send_keys(文件地址)上传文件 self.driver.find_element_by_id('上传按钮id').send_keys('文件路径+文件名') 下面以百度图片搜索上传图片为例 #!/usr/bin/python # -*- coding: UT
阅读全文
摘要:WebDriver提供了execute_script()方法来执行JavaScript代码 具体DOM操作使用方法见之前写的一篇博文:https://www.cnblogs.com/feng0815/p/8215768.html 关于Webdriver自动化测试之执行JavaScript脚本可直接参
阅读全文
摘要:一、多窗口处理 在进行自动化测试的时候,经常会遇到点击一个连接或按钮后,会打开一个新的页面,需要我们在新的窗口进行操作,这个时候就需要使用Webdriver里的switch_to_window方法了 #!/usr/bin/python # -*- coding: UTF-8 -*- """ @aut
阅读全文
摘要:TouchAction,类似于ActionChains,ActionChains只是针对PC端程序鼠标模拟的一系列操作,对H5页面操作是无效的。TouchAction可以对H5页面操作,通过TouchAction可以实现点击、滑动、拖拽、多点触控,以及模拟手势等各种操作。 关于 ActionChai
阅读全文
摘要:pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点: 简单灵活,容易上手 支持参数化 能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests) pytest具有很多第三方插件,并且可以
阅读全文
摘要:前言 现在很多网站的都大量使用JavaScript,或者使用了Ajax技术。这样在网页加载完成后,url虽然不改变但是网页的DOM元素内容却可以动态的变化。如果处理这种网页是还用requests库或者python自带的urllib库那么得到的网页内容和网页在浏览器中显示的内容是不一致的。 解决方案
阅读全文
摘要:通过appium-desktop定位元素 ClassName Android Android的class属性对应ClassName定位方式,ClassName一般都是会重复的,可以通过index来获取需要的元素。(从0开始查找dom树中的同名class属性) iOS iOS的type属性对应CLas
阅读全文
摘要:Appium 初始化配置信息(Desired Capabilities),Desired Capabilities实际上就是一个字典,它主要用于向Appium Server提供初始化配置参数,如:想要测试的系统是Android还是IOS,测试哪款软件,软件的入口是哪里等。 这种服务关键字在网上很多,
阅读全文
摘要:手机App分为两大类,原生App(Native App)和混合APP(Hybrid App) 原生App(Native App) 原生App实际就是我们所常见的传统App开发模式,云端数据存储+App应用客户端。App应用客户端,包含了所有的UI元素、框架逻辑等。只有数据存储在云端。 混合App(H
阅读全文
摘要:什么是Css Selector? Css Selector定位实际就是HTML的Css选择器的标签定位 工具 Css Selector的练习建议大家安装火狐浏览器后,下载插件,FireFinder 或 FireBug和FirePath组合使用。 Css Selector使用方法 1、Css Sele
阅读全文
摘要:ActionChains 有时候我们在通过Selenium做UI自动化的时候,明明能够在DOM树内看到这个元素,但是我在通过driver click、sendkey的时候,就是点击不到或无法输入字符串。实际上这是由于WEB中某些元素需要通过一系列连贯的操作才能处于可以点击的状态,driver提供的c
阅读全文
摘要:浏览器操作 # 刷新 driver.refresh() # 前进 driver.forward() # 后退 driver.back() 获取标签元素 # 通过ID定位目标元素 driver.find_element_by_id('i1') # 通过className定位目标元素 driver.fi
阅读全文
摘要:前世 Selenium RC 早期的Selenium使用的是JavaScript注入技术与浏览器打交道,需要Selenium RC启动一个Server,将操作Web元素的API调用转化为一段段Javascript,在Selenium内核启动浏览器之后注入这段Javascript。开发过Web应用的人
阅读全文
摘要:首先,所需安装软件及推荐安装版本: Java 1.8版本 Android SDK Node js(>=10版本),npm(>=6版本) Python3 appium-desktop appium python client 友情提示:安装此环境较为复杂,请保持平和的心态安装~~~ 第一步 安装JDK
阅读全文
摘要:安装建议: Nodejs 12 Appium 建议1.15 Java 1.8 SDK build-tools/ 下对应的版本,需要使用<=29的版本 第一步:安装JDK 安装JDK,本机如果带有1.7及以上版本的,则可忽略此安装步骤。 JDK的安装包,百度下载即可。安装完成后配置环境变量。 cmd下
阅读全文
摘要:一、介绍 HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份YAML/JSON脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。 官方文档:https://docs.httprunner.org/ 二、框架设计理念 充分复用优秀的开源项目,不追
阅读全文
摘要:mitmproxy 相比Charles、fiddler的优点在于,它可以命令行方式或脚本的方式进行mock mitmproxy不仅可以像Charles那样抓包,还可以对请求数据进行二次开发,进入高度二次定制 大家可以先查看下官网的相关文档 mitmproxy 官网:https://www.mitmp
阅读全文
摘要:项目介绍 接口功能测试应用:http://www.weather.com.cn/data/cityinfo/<city_code>.html 测试功能:获取对应城市的天气预报 源码:Python 功能包: HttpClient 请求方法:Get 自动化测试框架:pytest 源码位置:https:/
阅读全文
摘要:Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件 Postman背景介绍 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅
阅读全文
摘要:Charles是一款非常好用的代理工具,关于Charles的安装、破解、安装证书,连接手机代理等使用方法详见我之前的博客:https://www.cnblogs.com/feng0815/p/8043375.html ,本次只介绍Charles的几种mock方法。 Charles提供了Map功能、R
阅读全文
摘要:linux curl是通过url语法在命令行下上传或下载文件的工具软件,它支持http,https,ftp,ftps,telnet等多种协议,常被用来抓取网页和监控Web服务器状态。 语法:# curl [option] [url] 常见参数: 用参数 参数描述 -I/--head 只显示传输文档,
阅读全文
摘要:现在基本大部分网站都使用了https,所以要想抓到https的请求,首要任务是先有工具:charles、fiddler,先介绍下charles针对https请求的抓取方法,此方法兼容windows和mac用户(mac用户方法类似)。 1、 windows下安装charles,看到此文章的用户相信都已
阅读全文
摘要:首先,什么是接口呢? 接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们用的a
阅读全文
摘要:具体需求: 有一个登陆页面, 上面有2个textbox, 一个提交按钮。 请针对这个页面设计30个以上的test case. 此题的考察目的: 面试者是否熟悉各种测试方法,是否有丰富的Web测试经验, 是否了解Web开发,以及设计Test case的能力 这个题目还是相当有难度的, 一般的人很难把这
阅读全文
摘要:公共测试用例一.金额相关1.金额参数必须以“元”为单位,精度要求小数点后两位。2.金额的小数点后面超过两位,页面或者服务端进行错误提示。3.金额输入0.01(一分钱问题),关注数据库存的值是否为0.01,前端显示是否为0.01。4.金额输入0,关注数据库存的值为0,前端展示是否正确5.金额输入为负值
阅读全文
摘要:判定表也称我决策表,能表示输入条件的组合,以及与每一输入组合对应的动作组合。与因果图法相似判定表法主要侧重输入条件之间的逻辑关系。 1.判定表主要包含以下五部分: 条件桩:列出所有可能的条件 条件项:列出所有的条件取值组合 动作桩:列出所有可能的操作 条件项:列出在每一种条件取值组合的情况下,执行动
阅读全文
摘要:adb是什么 adb的全称为Android Debug Bridge,就是起到调试桥的作用。它就是一个命令行窗口,用于通过电脑端与模拟器或者是设备之间的交互。 adb有什么用 借助adb工具,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。其
阅读全文
摘要:iOS -调试工具Instruments使用总结一、instruments介绍 灵活、强大的工具,可以做性能分析、代码追踪、检查内存泄露等。 二、使用 1、打开方式 Xcode -> Open Developer Tool -> Instruments 2、常用模块 Allocations:用来检查
阅读全文
摘要:决策表实际测试种,如果输入条件较多,再加上各种输入与输出之间相互地作用关系,画出地因果图会比较复杂,容易使人混乱。为了避免这种情况,人们往往使用决策表法代替因果图法。决策表也称为判定表,其实质就是一种逻辑表。在程序设计发展初期,判定表就已经被当作程序开发地辅助工具,帮助开发人员整理开发模式和流程,因
阅读全文
摘要:因果图与决策表法等价类划分与边界值分析法主要侧重于输入条件,却没有考虑这些输入之间的关系,如组合、约束等。如果程序输入之间有作用关系,等价类划分法与边界值分析法很难描述这些输入之间的作用关系,无法保证测试效果。因此,需要学习一种新的方法来描述多个输入之间的制约关系,这就是因果图法。因果图法是一种利用
阅读全文
摘要:边界值分析法对于测试人员来说,测试工作做得越多越会发现,程序得一些错误往往发生在边界值上,例如,某程序得输入数据要求取值范围为1-100,当取值在1-100内部时没有问题,然而去边界值1或100时会发生错误,这就是程序开发时对边界问题没有做好处理。边界值分析法就是对边界值进行测试得一种方法,本节将针
阅读全文
摘要:黑盒测试方法 学习目标* 掌握等价类划分法* 掌握边界值分析法* 掌握因果图与决策表法* 了解正交实验设计法 黑盒测试是软件测试中经常使用的一种测试手段,常用的黑盒测试方法包括等价类划分法,边界值分析法,因果图与决策表法,正交实验设计法等,这些方法非常实用,本章将针对黑盒测试常用方法进行详细的讲解。
阅读全文
摘要:软件测试的基本流程软件测试和软件开发一样,是一个比较复杂的工作过程,如果无章法可循,随意进行测试势必会造成测试工作的混乱。为了使测试工作标准化、规范化,并且快速、高效、高质量的完成测试工作,需要制订完整且具体的测试流程。 软件测试的流程不同类型的软件产品测试的方式和重点不一样,测试流程也会不一样。同
阅读全文
摘要:软件测试的原则 软件测试经过几十年的发展,人们提出了很多测试的基本原则用于指导软件测试工作。指定软件测试的基本原则有助于提高测试工作的效率和质量,能让测试人员以最少的人力、物力、实践等尽早发现软件中存在的问题,测试人员应该在测试原则的指导下进行测试工作。下面介绍一下业界公认的6个基本原则。 1、测试
阅读全文
摘要:软件测试与软件开发软件开发与软件测试都是软件项目中非常重要的组成部分,软件开发是生产制造软件产品,软件测试是检验软件产品是否合格,两者密切合作才能保证软件产品的质量。软件测试与软件开发的关系软件中出现的问题并不一定都是由编码引起的,软件在编码之前都会经过问题定义、需求分析、软件设计等阶段,软件中的问
阅读全文
摘要:软件测试概述 在信息技术飞速发展的今天,各种各样的软件产品越来越多,各个行业的发展都已经离不开软件,为保证软件产品的质量,软件测试工作越来越重要。但是有很多读者对于软件测试的基本知识还不是很了解,本节将针对软件测试的概念、目的与分类进行详细的讲解。1.1软件测试简介在早期的软件开发中,软件大多是结构
阅读全文
摘要:软件缺陷管理 软件测试的工作就是查找软件中存在的缺陷,反馈给开发人员使之修改,从而确保软件的质量,因此软件测试要求测试人员对软件有一个深入理解。 1、软件缺陷产生的原因 软件缺陷就是通常所说的Bug,它是指软件中(包括程序和文档)存在的影响软件正常运行的问题。IEEE(Institute of El
阅读全文
摘要:1.功能性:软件所实现的功能满足用户需求的程度.功能性反映了所开发的软件满足用户称述的或蕴涵的需求的程度,即用户要求的功能是否全部实现了。 2.可靠性:在规定的时间和条件下,软件所能维持其性能水平的程度。可靠性对某些软件是重要的质量要求,它除了反映软件满足用户需求正常运行的程度,且反映了在故障发生时
阅读全文