- 博客(65)
- 问答 (1)
- 收藏
- 关注
原创 TestNG简介
TestNG是一个开源的自动化测试框架,它受JUnit和NUnit启发,其中“NG”即表示Next Generation,其功能更强大使用更方便。它能覆盖不同层级的测试,例如,单元测试,集成测试,端对端测试等。它提供了很多注解(类似Python中的装饰器)来帮助我们管理测试用例。1)注释,很多注释/注解提供2)支持数据驱动测试(@DataProvider)3)支持变量4)自动生成测试报告5)通过配置testng.xml,我们可以只执行测试失败的用例6)支持很多IDE工具(Eclipse等)
2025-04-01 20:11:52
602
原创 Shell脚本
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。中间不能有空格,可以使用下划线(_)。不能使用标点符号。不能使用bash里的关键字(可用help命令查看保留关键字)myname='galley' #单引号,字符串类型,不解析任何字符courses="abcdefg" #双引号,内部会解析$和反斜杠特殊字符sum=100;price=1.2544 #如果是数字,可以不加引号now_date=`date` #反引号执行系统命令。
2025-02-10 21:48:42
642
原创 Selenium with Python Behave(BDD)
Python语言的行为驱动开发,Behavior-driven development,简称BDD.如果已经装了Behave,为了upgrade: pip install-U behave。如果没装过Behave: pip install behave。
2024-06-04 15:25:18
688
原创 Postman自动化测试接口
Collection variables:其中两个X-IBM类似于身份信息,baseURL是所有API共同的前缀,documentId和cmrID是自动写入的(每次更改后的id都会更新到这里)查看集合变量documentId更新了。
2023-10-21 21:35:25
90
原创 pytest 接口自动化测试
1、如果不提供任何参数,那么pytest会在当前目录及子目录下寻找以test_开头或者以_test结尾的测试文件,且该文件中以test_开头的测试函数。3.如果含有测试类,那么允许该测试文件时,会搜索类名以Test开头的类,且该测试类中的函数命名也必须符合要求才会被执行。2.执行测试文件里的函数的时候,会搜索以test_开头的测试函数执行,不符合此规则的函数不会被执行。其实呢,pytest的运行方式花样非常多,有很多参数可以使用,可以达到不同的效果。4、运行的方式可以在命令行也可以在主方法上面运行。
2023-10-07 22:06:44
1286
原创 Postman项目实战一
把结果(任务id)保存到Collection变量-todo_id供其他接口使用。(1)把第一个接口的返回值token保存到collection变量-token。第四个接口返回值assert:(断言和上一个一样,因为数据没有修改)测试集 -> 三个点 -> Run Collection。Collections -> +,创建新测试集。自动打开Runner界面,可以选择执行哪些接口。接口5成功,任务id被删除了,没有内容了。和第三个接口一样,再查一次。接口6,id被成功删除。第一个request。
2023-08-17 12:08:31
548
1
原创 接口和接口测试
对于app端来说呢,它就是咱们用的app,android或者object-C(开发ios上的app)开发的,它的作用就是显示页面,让我们看到漂亮的页面,以及做一些简单的校验,比如说非空校验,咱们在页面上操作的时候,这些业务逻辑、功能,比如说你购物,发微博这些功能是由后端来实现的,后端去控制你购物的时候扣你的余额,发微博发到哪个账号下面,那前端和后端是怎么交互的呢,就是通过接口。具有接口调试,接口集管理,环境配置,参数化,断言,批量执行,录制接口,Mock Server, 接口文档, 接口监控等功能;
2023-08-14 11:40:33
246
原创 UFT连接MySQL ODBC
本地环境:MySQL 8.0 64位ODBC 64位和32位都已下载安装,原因如下:在某些64位系统上执行以上代码,即使驱动名等其他完全正确的情况下,还可能出现的以下异常:[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序原因:微软的ODBC在64位机上,有2个:C:\Windows\SysWOW64\odbcad32.exe:32位,非系统默认,但是UFT可能直接调用这个。C:\Windows\System32\odbcad32.exe:64.
2022-05-03 17:06:49
1027
原创 VBS/UFT:上一个函数的输出怎么可以作为下一个函数的一个输入
方法1:将上一个函数的参数同时也作为下一个函数的参数Function addtest(testa,testb) addtest = CInt(testa) + CInt(testb)End FunctionFunction subtraction(testc,testd,testa,testb) subtraction = CInt(testc) - CInt(testd) + addtest(testa,testb)End FunctionMsgBox subtraction(9,
2022-03-03 22:36:20
393
原创 UFT对table的操作
通常Table(类似电子表格的行和列组成的二维网格)中的数据是动态从后台数据库中抽取并呈现给用户的。下面是HTML的web table的句法,tr代表一行,td代表所属行中单独的一个小格。<table border="1"> <tr> <th>Month</th> <th>Savings</th> </tr> <tr> <td>January</td
2022-01-18 22:57:24
701
原创 UFT自动化测试框架学习
1.自动化测试流程1.自动化测试需求分析工作量大,操作简单但繁琐; 版本基本相同,但迭代次数多; 测试业务流程,关注业务功能实现2.自动化测试实现方法分析采购商业工具,比如Web:Selenium,客户端:UFT 团队自主研发3.自动化测试成本分析人力、编程能力、工具(以及框架)、时间、随版本改动而修改4.自动化测试设计框架设计:简单功能验证,一般不需要框架。但如果是个产品线,核心不怎么变化,可以考虑框架设计。优点:可以实现大量资源共享,减少重复投入。比如共享对象库,共享
2021-09-21 23:32:53
1441
1
原创 python——装饰器、迭代器、生成器
装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象,它经常用于有切面需求的场景,比如:插入日志、性能测试事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。没引入装饰器时,打印不同函数的日志:import loggingdef use_logging(func): logg
2021-04-24 22:32:53
400
2
原创 操作系统简介
计算机系统与操作系统计算机系统:由硬件和软件相互交织形成的集合体,构成一个解决计算问题的工具。硬件:计算机物理装置本身,可以是电子的、磁的、机械的、光的元件或装置。软件:指计算机系统中的所有软件。硬件是软件运行的物质基础,软件能够充分地发挥硬件潜能并扩充其功能,完成各种应用任务,两者互相促进,相辅相成,缺一不可。操作系统与驱动程序:操作系统必须能驱动硬件,如此应用程序才能使用该硬件功能; 一般来说, 操作系统会提供开发接口,让开发商制他们的驱动程序; 要使用新硬件功能,必须安装厂商.
2021-04-21 18:36:45
1179
1
原创 对百度搜索的一次web自动化测试
代码:import unittestfrom time import sleepfrom selenium import webdriverclass TestBaiDu(unittest.TestCase): @classmethod #用setUp,每执行一条测试用例就会启动和关闭一次浏览器,所以此处用setUpClass def setUpClass(cls): cls.driver = webdriver.Chrome() cls
2021-04-21 18:29:56
888
原创 关系型数据库
一、数据模型1.层次数据模型(Hierarchical data model)数据之间存在着像树一样的层级关系定义:有且只有一个结点没有双亲结点,这个结点称为根结点 根以外的其它结点有且只有一个双亲结点特点:结点的双亲是唯一的; 只能直接处理一对多的实体联系 ; 任何记录值只有按其路径查看; 没有一个子女记录值能够脱离双亲记录值而独立存在2.网状数据模型(Netwo...
2021-04-11 13:56:53
17614
原创 一个简单的接口测试
所需工具:postman、python+pycharm、requests、unittestpostman可以帮助我们完成50%左右的工作,比如调试接口,导出部分代码等 使用unittest重构用例可以帮助我们添加断言,提供在命令行执行的能力测试接口:地址:https://www.v2ex.com/api/nodes/show.jsonMethod: GETAuthentication: None(无鉴权)接受参数: name,此处测试数据name=python,即https://ww
2021-04-10 22:49:18
361
转载 Python——迭代器和生成器
迭代器迭代是Python最强大的功能之一,是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter()和next()。字符串,列表或元组对象都可用于创建迭代器:>>> list=[1,2,3,4]>>> it = iter(list) # 创建迭代器对象>>> print (next(it..
2021-04-08 19:00:03
137
原创 前端技术简介
前端技术介绍:html:网页的基础,是一种标记语言,显示数据;JS(javascript):前端脚本语言,解释型语言,在页面中添加交互行为;xml:扩展标记语言,用来传输和存储数据;css:层叠样式表,用来表现HTML或XML等文件样式。htmlhtml是用来描述网页的一种语言,它不是一种编程语言,而是一种标记语言(标记标签)。标签是指<html></html>,<div></div>。标签是有语义的:标题用<h1>
2021-04-07 19:00:57
1396
原创 python代码练习
方法1:list = ['1', '2', '3', '6', '5', '6', '6', '2', '1']result = max(set(list), key=list.count)print(result)结果:6关于set(),max()及排序用法详见https://blog.youkuaiyun.com/guo_qingxia/article/details/103480106和https://blog.youkuaiyun.com/guo_qingxia/article/details/11540
2021-04-06 19:15:17
15058
3
转载 Python——collections
简介可参考官方文档:https://docs.python.org/3.8/library/collections.html?highlight=collections#collections.dequecollections是Python内建的一个集合模块,提供了许多有用的集合类。这个模块实现了特定目标的容器,以提供Python标准内建容器dict , list , set , 和 tuple的替代选择。 namedtuple() 创建命名元组子类的工厂函数
2021-04-06 19:02:34
152
原创 python数据分析——numpy
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。安装pip install numpy测试是否安装成功:>>> from numpy import *>>> eye(4) #生成对角矩阵array([[1., 0., 0., 0.], [0., 1., 0., 0.], [0., 0., 1., 0.],
2021-04-06 16:16:37
279
原创 数据结构与算法
目录逻辑结构线性结构线性表链表栈队列串数组非线性结构树和二叉树图逻辑结构逻辑结构:指数据元素之间的逻辑关系。即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。逻辑结构可细分为四类:集合结构: 仅同属一个集合 线性结构: 一对一(1:1) ——线性 树结构: 一对多(1:n) ——非线性 图结构: 多对多 (m:n) ——非线性线性结构线性结构:若结构是非空有限集,则有且仅有一个开始结点和一个终端结...
2021-03-30 22:19:41
564
原创 算法的时间复杂度和空间复杂度
算法:算法是对特定问题求解步骤的一种描述,它是指令的有限序列,是一系列输入转换为输出的计算步骤。程序设计的实质:好算法+好结构算法的基本特性:有穷性、确定性、可行性、必有输出算法评价指标:正确性、可读性、健壮性、效率与低存储量需求(效率常用时间复杂度来衡量,低存储量常用空间复杂度来衡量)时间复杂度T(n)按数量级递增顺序为:渐进符号(O)的定义:当且仅当存在一个正的常数 C,使得对所有的 n>=n0 ,有 f(n)<=Cg(n),则:f(n) = O(g(n))空间复
2021-03-23 15:05:23
268
原创 计算机硬件
冯诺依曼计算机计算机由五部分组成:运算器、控制器、存储器、输入设备和 输出设备。存储程序思想(将程序——一系列指令和数据存在存储器中 CPU依次从存储器中取出指令,加以分析和执行,直至全部指令任务完成为止)。计算器与控制器——CPU运算器:ALU(算术逻辑单元)、多路选择器、一组通用寄存器和标识寄存器 控制器:控制其他部件运行,包括指令控制、时序控制和操作控制 衡量CPU性能指标:①频率(外频*倍频),CPU超频 ②位长(4位、8位、16位、32位、64位)与内存访问大小③多核 CP
2021-03-18 21:34:16
354
原创 计算机编码
进制:二进制、八进制、十六进制原码、反码、补码原码、反码、补码的引入是为了解决做减法的问题。原码最高位为符号位,0表示正数,1表示负数,数值位是它的绝对值,这样构成的数码称原码。+127=( 01111111) -127 =( 11111111 )对于正数之间的加法通常是不会出错的,而正数与负数相加,或负数与负数相加,就要引起莫名其妙的结果,这都是符号位引起的。因此,引入反码。反码正数的反码还是等于原码,负数的反码是正数原码的符号位和数值位按位取反。+127=( 01.
2021-03-18 21:22:45
345
原创 SVN
一、简介SVN是Subversion的简称,是一个开放源代码的版本控制系统,采用分支管理系统,说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的.svn服务器有2种运行方式:独立服务器和借助apache运行.访问方式:①URL访问②SVN客户端访问基本使用流程:二、基本概念配置库( Repository ):SVN(subversion)是一种常用的配置管理工具,它的数据存储在一个有记忆功能的中央仓库(repository )里,记录每一次提交,包括增加、删除、修
2021-03-04 13:41:21
220
1
原创 正则表达式
正则表达式(Regular Expression,在代码中常简写为regex、regexp或RE),正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。普通字符[ABC]:匹配 [...] 中的所有字符,例如 [aeiou] 匹配字符串 "google runoob taobao" 中所有的 e o u a 字母。 [^ABC]:匹配除了 [...] 中字符的所有字符,例如 [^aeiou] 匹配字符串 "google runoob taobao" 中除了 e o u a 字母的所有字母
2021-03-04 11:33:48
161
原创 python——正则表达式(re模块)详解
在Python中需要通过正则表达式对字符串进⾏匹配的时候,可以使⽤⼀个python自带的模块,名字为re。正则表达式的大致匹配过程是:1.依次拿出表达式和文本中的字符比较,2.如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。3.如果表达式中有量词或边界,这个过程会稍微有一些不同。r:在带有 'r' 前缀的字符串字面值中,反斜杠不必做任何特殊处理。 因此 r"\n" 表示包含 '\' 和 'n' 两个字符的字符串,而 "\n" 则表示只包含一个换行符的字符串。re模块的
2021-03-02 16:31:33
269264
31
原创 python多任务——线程、进程和协程
多任务:操作系统可以同时运⾏多个任务单核CPU执行多任务:操作系统轮流让各个任务交替执⾏,任务1执⾏0.01秒,切换到任务2,任务2执⾏0.01秒,再切换到任务3,执⾏0.01秒……这样反复执⾏下去。表⾯上看,每个任务都是交替执⾏的,但是,由于CPU的执⾏速度实在是太快了,我们感觉就像所有任务都在同时执⾏⼀样。多核CPU执行多任务:由于任务数量远远多于CPU的核⼼数量,所以,操作系统也会⾃动把很多任务轮流调度到每个核⼼上执⾏。并发:指的是任务数多于cpu核数,通过操作系统的各种任务调度算法,实现
2021-01-06 20:25:58
166
1
原创 unittest单元测试框架
Python中的单元测试框架:doctest、unittest、python、nose等。单元测试:通过一段代码去验证另一段代码。unittest1. 四个重要的概念Test Case:Test Case是最小的测试单元,用于检查特定输入集合的特定返回值。unittest提供了Test Case基类,我们创建的测试类需要继承该基类,它可以用来创建新的测试用例。 Test Suite:经常被翻译成"测试套件",也有人称为"测试套",是测试用例或测试套件的集合,一般用来把需要一起执行的用例组合
2020-11-30 21:46:47
402
2
原创 docker
一、docker是什么 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 ①docker的集装箱思想: 不同的应用程序可能会有不同的应用环境。我们可以在...
2020-11-23 17:17:30
143
原创 Markdown使用规则
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,Markdown 编写的文档后缀为 .md, .markdown。标题使用 # 号可表示 1-6 级标题,一级标题对应一个 # 号,二级标题对应两个 # 号,以此类推。#后面加个空格。# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题段落Markdown 段落没有特殊的格式,直接编写文字就好,段落的换行是使用两个以上空格加上回车,当然也可以在
2020-11-16 16:05:47
298
原创 Selenium - WebDriver 操作
此处以“菜鸟教程”网页举例,先打开菜鸟教程首页https://www.runoob.com/,再打开“菜鸟笔记”tab>>> from selenium import webdriver>>> b = webdriver.Chrome()>>> b.get('https://www.runoob.com/')>>> b.maximize_window() #最大化窗口<a href="//www.runoob
2020-07-06 23:47:40
2531
2
原创 jmeter简介
1.jmeter简介Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。开源,免费且具有了LoadRunner95%以上的功能,性价比极高。2.jmeter特点支持对多种服务类型进行测试;
2020-06-11 22:58:50
4351
1
原创 导航数据的基本功能
1.背景数据背景点landmark:总是显示在界面中,用户不能控制是否显示icon:用户可以通过菜单控制是否显示在界面中的点背景线铁路行政区划线单线河背景面江、河、湖、海绿地2.道路数据道路种别城市间高速公路、城市内高速路、国道、省道、县道、乡镇村道、其它道路、渡口联络线通行方向双向通行单向通行(道路通行方向相对于矢量数据存储而言分为...
2020-04-14 12:24:15
1589
原创 Java Scanner 类
通过 Scanner 类来获取用户的输入,基本语法:Scanner s = new Scanner(System.in);import java.util.Scanner;public class App1{ public static void main(String[] args){ double[] scores = new double[10] ...
2020-03-09 22:43:01
132
1
原创 项目管理与禅道
1.项目和项目管理项目:在既定的资源和要求的约束下,为实现某种目的而相互联系的一次性工作任务。项目管理:把各种系统、方法和人员结合在一起,在规定的时间、预算和质量目标范围内完成项目的各项工作。2.2001年敏捷宣言: 个体与交互重于过程和工具 可用的软件重于完备的文档 ...
2020-03-03 21:38:00
552
原创 网络通信总结
MAC地址:在设备与设备之间数据通信时⽤来标记收发双⽅(⽹卡的序列号) IP地址:在逻辑上标记⼀台电脑,⽤来指引数据包的收发⽅向(相当于电脑的序列号) ⽹络掩码:⽤来区分ip地址的⽹络号和主机号 默认⽹关:当需要发送的数据包的⽬的ip不在本⽹段内时,就会发送给默认的⼀台电脑,成为⽹关 集线器:已过时,⽤来连接多态电脑,缺点:每次收发数据都进⾏⼴播,⽹络会变的拥堵 交换机:集线器的升级版,...
2020-01-13 15:39:13
166
1
空空如也
vbs中,call function中的function必须得提前定义好吗
2021-07-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人