自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一个“软件测试工程师”的《读书单》

书单简介 这是最近一年来读的书单,比我之前10年读的专业书加起来都多。记得之前看某培训讲师的视频,他说“测试工程师”是最不喜欢给自己投资的人,意思是测试工程师一般不喜欢研究最前沿的知识和技术,前进的脚步落后于开发人员的脚步。从我认识的有限的测试人员来看,大家大都勤勤恳恳兢兢业业,但喜欢学习和探索的人的确少了些。我也是其中之一。 好在某一天我突然觉悟了,在某当网上分批次买了好多专业书籍,有的书读了好几遍,每次读都受益匪浅,有的书索然无味,没读几章就束之高阁。下面列上我的书单,以及每本书里我比较喜欢的一段

2020-05-19 14:15:24 431

原创 python小例子 - 将HTTP接口入参重新格式化

今天有个应用场景,是微信小程序的vConsole日志中,前端开发同学打印出来的接口入参,格式不是标准的json格式,无法在postman或jmeter中直接使用。花了几分钟,就是按规则一步一步的进行替换,简单粗暴,但却可以为未来省下几小时的麻烦。所以临时写了一个python小程序,用于入参的处理。

2022-11-07 11:42:38 287 1

原创 JMeter应用-循环控制器、计数器的配合使用

使用场景:今天有了一个构造测试数据的需要,要用Jmeter来写一个脚本,自动创建一个商户,以及在商户下创建多个站点。重点在与怎样快速创建多个站点,且各个站点名称类似于站点01、站点02,名称不能重复,以上可以用循环控制器来实现。

2022-10-28 18:00:43 3586

原创 python用于数据构造 - 生成指定长度的测试数据

python生成指定长度的测试数据

2022-07-18 18:56:21 645

原创 Jmeter使用MD5函数生成加密后的入参

jmeter中的md5加密函数使用

2022-07-16 14:58:09 949

原创 测试踩坑 - 当已有接口(或数据库表中)新增字段时,都需要注意哪些测试点?

当已有接口(或数据库表中)新增字段时,需要注意的测试点

2022-07-05 16:22:14 2176

原创 JMeter断言之json断言

如果接口返回的数据是json格式的,如果需要对结果断言,可进行如下配置一、对接口中的一个返回值进行断言二、若希望接口返回的结果不等于某数值时三、当接口返回数据中包含多个相同名称的参数时...

2022-04-25 19:53:12 14291 1

原创 JMeter从HTTP接口返回的参数中获取数据 - 使用Json提取器

Http接口返回的数据,一般都是json格式的,如果需要提取出其中的某个数据,作为后续其他接口的入参,那么可以使用json提取器。从接口中提取一个数据以登录接口为例,当登录成功后接口会返回一个token,如下图所示这样的,后续其他接口会使用该token作为header入参使用那么在jmeter的http请求下,新添加一个json提取器json提取器中进行如下配置:其中$,代表根元素其中$.data.id,就代表我要获取到的参数将获取到的值赋给变量token,那么后续的接口中就可以使用${

2022-04-25 15:03:36 2846

原创 JMeter从mysql数据库查询多条数据,并作为入参调用HTTP接口

以测试用户登录接口为例子,预计6条测试用例,其中用例1和2是正确登录,接口返回的结果是true,另外4个测试用例为:用户名错误、密码错误、密码是空、用户名是空,接口返回的结果是false一、Mysql数据库中准备测试数据如图所示,是我准备的测试数据,包括用户名、密码,expert_result是期望接口返回的结果二、Jmeter配置从Mysql数据库中读取用户如果是第一次用Jmeter连接mysql数据库,可以先参考我的上一篇微博进行配置https://blog.csdn.net/weixi

2022-04-20 11:54:59 1974

原创 JMeter - 如何连接Mysql数据库执行SQL语句

一、将mysql-connector-java-8.0.11.jar包放到jmeter相应路径下:D:\Program Files\apache-jmeter-5.4.1\lib\ext环境安装完成后:1、线程组下配置一个JDBC Connection Configuration

2022-04-19 17:44:28 1491

原创 python中接口自动化中,如何用脚本获取url中某参数值

在进行自动化测试脚本编写时,遇到一个使用场景:接口返回的数据是一个url,我想获取该url中的具体的参数值例如:url=https://edu.csdn.net/course?key1=test1&key2=test2我想要获取到key1的值是什么方法1:1)url中先截取?后面的参数字符串2)按&将参数字符串分割成参数列表3)查询列表中各元素是否包含目标参数4)最后截取到参数值def get_params(url,params): url_params=url.sp

2022-04-14 15:46:20 759

原创 python使用requests调用get接口的两种入参方式

我用python主要是在用pytest框架,来做接口自动化测试。此时url的入参需要经常变化url中直接带入参如果get的入参相对比较固定,或者比较短的时候,建议将入参直接写入url中即可,以按test关键字搜索博客为例:import requestsdef test1(token): url = r"https://atest.xxxxx.com/item/query.json?keyword=test&type=1" headers = {"token" : token

2022-04-11 15:03:36 1781

原创 pytest中接口自动化测试用例,参数化的前后差别

在进行自动化测试用例设计的时候,随着测试用例的条数越来越多,如何能快速维护测试数据,是个必须要考虑的问题。以用户登录login接口自动化测试为例,我设计了6个测试用例,其中2条是有效等价类,另外4个是无效等价类(这里仅是示例,真正的用例必然要比这个复杂的多)一、未参数化时未使用参数化时,用例可能是长这样的,看上去代码还算是清晰,但是呢,有如下2个大的弊端1、6条测试用例,我要写6个测试函数才可以,代码有点长啊2、若用户登录的接口有调整,6个测试函数都需要修改才行,效率很低"""对login接口

2022-04-09 16:11:30 1639

原创 pytest中如何选择执行的测试用例范围

一、执行某文件夹下的全部用例cmd窗口,先用cd命令切换到目标文件夹,输入pytest命令时,pytest框架会根据如下规则,自动搜寻并执行该文件夹及子文件夹下所有用例:1、python文件要以test开头2、python文件中class要以Test开头,3、测试class类中的测试用例(即测试函数)要以test开头符合以上规则的用例会自动被执行二、执行某1个文件下的所有用例pytest -v xxxx.py三、执行某1个文件下,某1个测试类中的所有用例pytest -v xxxx.p

2022-04-09 15:49:37 2740

原创 Jmeter将每次测试的结果保存到文件中

在测试中,最好能够将测试时的接口返回数据保存下来,供以后需要的时候查看。1、在Jmeter中,察看结果树的设置页面,手动输入要保存的文件路径即可,例如保存为d:\xxxx.xml2、名称上加上时间戳${__time(yyyy-MM-dd,)}如果该jmeter脚本会被执行多次,每次都保存到这一个文件中显然不合适,那么每次都更换一个新文件名,又会很麻烦。可以使用时间函数来实现,如上图所示,在文件名中加入时间函数,每次就动态生成带着时间戳的名字了。例如名称带上日期,需要在名称中包含${__time(

2021-12-29 18:40:17 6610

原创 Mysql表和数据的复制操作

准备测试数据时候,需要经常对数据库中的表结构以及表中数据进行复制、删除等操作,现对常用的操作总结一下:数据库中已经存在一个表A,表结构及数据如下:1、创建新表B,从A表复制结构,不复制数据create table B like A;create table B select * from A where 1=2;以上两种方法皆可。2、创建新表C,复制A表结构以及表中所有数据create table C select * from A;3、创建新表D,复制表结构以及表中部分数据举个例子

2021-12-14 10:28:34 2059

原创 Jmeter测试时遇到的各种乱码

1、csv文件中的中文,在jmeter中显示乱码新建一个txt文件,将原来csv文件中内容拷贝到新文件中,保存时注意保存为UTF-8格式。Jmeter中csv文件配置时,选择此txt文件,编码格式选择utf-8。2、HTTP接口中返回的数据中,中文显示成乱码方法1:方法2:...

2021-12-06 18:51:33 3041 1

原创 Git常用命令总结

一、git克隆,第一次将master代码clone到本地1、git clone xxxcmd窗口中,路径切换到项目要存放的路径下git clone http://xxxxxxx/xxxxxxxxxx.git二、创建分支1、git status查看当前在哪个分支上2、git branch xxxx创建本地分支3、git checkout xxxx切换到某分支4、git push origin/xxxx将本地分支推送到远端分支上,否则其他人都看不到此分支三、查看和切换分支1、git bran

2021-11-18 14:51:08 189

原创 Jmeter应用 - 正则表达式使用(各种数据获取的总结)

测试时遇到一个场景,接口返回的数据是一个列表,列表中包含很多商品的信息,我们要验证的是其中一个商品的库存数值是多少。如果接口返回的只是一个商品的数据,那么直接抓商品库存字段即可;但列表中商品很多,如何能找到那个特定的商品库存进行比对呢?正则表达式配置接口返回的data数据样式如下{“sku”:“A001”,“productName”:“xxxxxxxx-xxx-xxx”,“stock”:10},{“sku”:“B002”,“productName”:“xxxxxxxx-xxx-xxx”,“stoc

2021-10-14 16:03:27 656

原创 Jmeter应用 - If Controller条件控制器的使用

工作中有个测试场景,根据不同的条件,进行不同的接口验证,可以通过jmeter的条件控制器If Controller来实现。If Controller 条件控制器配置配置时注意以下两点1、如果是需要当表达式为true执行后面的接口,则不要勾选下面红色框框里的选项。2、当变量与其他字符串比较时,两边都要加上引号。条件控制器中的条件包含“或”时或:使用“||”连接符条件控制器中的条件包含“与”时与:使用“||”连接符不等于:使用!=连接符...

2021-10-13 18:23:52 1026

原创 Jmeter遇到的问题和解决办法之 - 全局变量不生效

最近使用Jmeter时会遇到一些问题的,打算将遇到的问题慢慢总结一下,避免自己和其他人后续踩坑。全局变量不生效遇到了一个奇怪的现象,我修改了全局变量的值后,引用该全局变量的地方,仍然使用原来的值。找了半天,发现了问题出现的原因:1、我在Jmeter的同一个Test Plan下包含2个线程组,每个线程组里都设置了全局变量PlatForm,刚开始的时候,线程组1和线程组2的PlatForm都是A。所以执行时,引用PlatForm变量时值是A。2、将线程组1中PlatForm值修改为了B,线程组2中Pla

2021-10-13 11:27:04 2317

原创 Redis常用的命令总结

最近工作中部分接口的数据是从Redis中查询的,有时需要使用命令来操作缓存,所以稍微总结一下常用的redis命令。为什么使用Redis缓存当然是为了快!快!快!比较正式的说法:分布式缓存通常是为了缓解关系数据库的查询压力,在应用系统和关系数据库之间增加的一个独立分布式缓存系统,其中比较常用缓存系统有Redis、memcache等。memcache中仅支持字符串类型,不能满足公司系统的需求,所以选择了redis。Redis的五种数据类型Redis中包含五种数据类型:string、list、set、h

2021-10-12 14:22:18 468

原创 Jmeter应用 - 使用老接口来测试新接口

Jmeter实际应用小例子1 - 对两个接口的返回值进行比较

2021-09-26 14:04:06 268

原创 Jmeter应用 - 后台修改数据后,过多久接口才能返回正确的数值?

测试需求实际工作中要测试的一个场景是:后台对某个商品的价格修改后,前端页面中价格需要立即生效(之前是5秒后生效)。5秒和立即相比,好像是很长,但实际上在H5上网页刷一次,几秒钟就过去了,这个速度用肉眼还是很难观察到的,还是用脚本来验证会更加靠谱。由于前端页面上显示的价格就是后端接口返回的价格,所以可以通过验证接口返回结果的方式,来验证此场景。脚本思路使用Jmeter配置脚本,执行查询价格的接口,在接口加上响应断言,判断返回的价格是否与期望价格一致;脚本每1秒执行一次,连续不断的执行。当后台对价格进

2021-09-18 10:38:16 232

原创 接口测试用例的设计和执行

接口用例前的准备工作本次负责测试的是一个对外查询接口,是给外部系统提供使用的,在用例开始设计之前,要做以下准备工作1、了解需求,明确接口要实现的功能无论是功能测试用例设计还是接口用例设计,都必须要了解用户的需求是什么,为了解决什么样的问题而做这个需求。2、查看接口设计文档接口设计文档是必须要有的,包括接口的url、是Get还是Post方法、Http Header中是否需要特别的参数(如Content-Type)、接口入参的说明、返参的说明、以及必要的示例等。如何设计用例1、从接口的入参维度,设

2021-08-02 14:57:32 1014

原创 【自动化测试】每天自动执行pytest自动化测试脚本,并生成allure报告

一、安装allure1、allure依赖java,请确认本机已经安装java并配置好环境变量JAVA_HOME和JRE_HOME。2、从allure官网下载windows的压缩包(我下载的版本是allure-2.14.0.zip),解压到本地,将bin目录添加到环境变量path中。3、cmd窗口,输入allure --version,若显示出版本,则安装完成。4、cmd窗口,输入pip install allure-pytest,安装allure-pytest二、准备pytest测试脚本以下是本

2021-07-19 16:44:44 3977 1

原创 pytest测试结果生成allure报告

一、java安装1、allure依赖java,请确认本机已经安装java并配置好环境变量JAVA_HOME和JRE_HOME。二、安装allure2、从allure官网下载windows的压缩包(我下载的版本是allure-2.14.0.zip),解压到本地,将bin目录添加到环境变量path中。3、cmd窗口,输入allure --version,若显示出版本,则安装完成。三、安装allure-pytest4、cmd窗口,输入pip install allure-pytest四、执行pyt

2021-05-24 18:47:19 294

原创 使用django框架搭建后台环境,并创建自己的接口

一、django安装以及使用1、本地打开cmd命令窗口,输入pip install Django==3.2.2安装django需要注意的是,要去Django官网上查一下django版本与哪些python版本可匹配使用。我本机用的是python 3.9.12、继续使用cmd命令窗口,创建一个新项目,如django_1django-admin startproject django_13、启动项目cd django_1python manage.py runserver4、打开路径http://

2021-05-10 20:52:06 755

原创 Fiddler进行截包,并修改请求中的数据

今天对新提测的功能进行基本流程验证时,遇到了一个阻碍性bug,在页面上输入各项信息后,点击提交时,提示xxx字段不能为空。这个步骤如果卡住了,后续的功能都测试不了,但开发修复起来时间又较长,我们只能干等着。后来想到了用fiddler抓包和改包,通过fiddler改包,手动将此字段加上,让此步骤别卡住,让后续的测试能继续走下去。操作步骤如下:1、打开fiddler抓包工具,设置断点,bpu http://xxxxx.com/2、浏览器中,输入各项信息后,点击提交按钮3、此时包被fiddler截住,在

2021-02-07 18:41:22 1782 1

原创 python使用tkinter搭建一个简单的登录页面

学习使用tkinter,完成了一个简单的小页面,包括用户名、密码的输入框,以及登录和信息清除按钮。运行后的效果,如图所示:具体脚本如下:import tkinter as tk#定义一个窗口,并设置窗口的title和大小window = tk.Tk()window.title('Hello,tkinter!')window.geometry('500x300')#创建label用户名,pack方法会将此控件放置到窗口上l1 = tk.Label(window, text="用户名:"

2021-02-05 15:50:49 1658 1

原创 在centos7.5系统上安装git

在我的centos7.5服务器上安装git,首先尝试了yum安装,但版本较低,然后决定从git官网下载最新的安装包进行安装。1、查看centos上是否安装了gitgit --version执行结果:-bash: git: command not found2、安装gityum install git安装完成后,再查看git的版本git --version执行结果:git version 1.8.3.13、此git版本比较低,当前的最新版本已经是2.30.0了,于是我打算把git卸载,

2021-01-29 16:38:12 354 1

原创 python字符串格式化输出之format

勿纠结与到底用%还是format来格式化。

2021-01-27 16:33:35 601

原创 python接口测试 - 练习小例子

基于python的接口测试小练习,使用unittest框架和requests模块来编写接口自动化测试脚本,为加入公司的自动化小组做准备。```pythonimport unittestimport requests#定义登录和退出的类class UserLogin(): @classmethod def login(cls,username,password): login_url=r"http://xxxxxxxx" login_user={"type":"pwd","userN

2021-01-23 15:43:02 453 1

原创 VM上安装windows server2012和sql server2012

VM虚拟机上安装windows server2012和sql server2012,主要步骤如下:1、从网上下载windows server2012的镜像文件下载路径:https://msdn.itellyou.cn/网站下载方法:需要先安装迅雷,然后将网站上镜像文件的路径复制,在迅雷里打开,即可下载2、在VM中添加虚拟机,选择该镜像文件创建虚拟机网络:配置为桥接模式硬盘:官方建议至少分配60GBCPU和内存:按官方建议,至少分配1核2GB3、安装.NET 3.5 Framework(必须安

2020-11-19 09:43:32 1258

原创 Linux学习 - top查看系统资源占用,并将结果保存到文件中

Linux中top命令类似于windows的资源管理器,能够查看到系统当前cpu和内存的资源占用情况。1、top命令的执行结果2、将top的结果保存到文件中top -d 2 -n 5 -b>test.txt-d 时间间隔,单位是秒,上面的例子中,时间间隔是2秒。-n 执行次数,上面的例子中,共执行5次top命令并将结果写入test.txt文件中。若不加此参数,top会一直执行。-b 加上此参数以后,top的结果会以一定格式保存到文件中,文件内容显示时,格式会更加友好一些可使用cat

2020-11-16 11:53:40 8355

原创 Linux学习 - mysql数据库的安装和使用

Linux系统版本Centos7.51、mysql下载和安装yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpmyum install mysql-community-server2、服务启动systemctl enable mysqldsystemctl start mysqldsystemctl status mysqldps -ef | grep mysqld3、查看

2020-11-14 13:27:48 152

原创 Linux学习-腾讯云centos7.5服务器体验

第一次购买云服务器哦~最近要集中一段时间学习一下Linux系统操作,使用虚拟机限制实在太多,趁着双十一,决定入手一台云服务器。在比对了阿里云和腾讯云后,主要是基于钱包的考虑,花88元/1年入手了腾讯云服务器一台,配置如下:1核2G,按带宽计费(带宽1M),500G硬盘,系统是Centos7.5版本购买了几分钟后,我就可以使用提供的IP和root账户密码登录服务器啦,效率还是很高的,有点小兴奋。下面就进行我的第一项步骤,在centos7.5上安装mysql服务,使用的命令是:yum local

2020-11-14 10:50:37 362

原创 Jmeter学习笔记 - HTTP Cookie管理器的使用

一般有两种使用方式1、添加一个HTTP Cookie管理器,由Jmeter自行管理cookie,后续的请求中,将自动使用jmeter获取到的cookie。2、添加一个HTTP Cookie管理器,手动设置Cookie管理器中的cookie值。如果第一条满足要求,自然是最好最方便的,但是往往不满足要求。...

2020-11-12 18:09:01 946

原创 性能测试数据准备:向SQL Server数据库表中插入30万条数据

项目上有个需求,当数据库表中有10万条、20万条、30万条数据时,分别测试一下页面显示出这些数据的时间。1、创建表CREATE TABLE ttPerformanceTest(id INT IDENTITY,name VARCHAR(100),CompID INT,DepID INT,sex INT,age INT,address VARCHAR(200),status INT,remark VARCHAR(200),PRIMARY KEY(id))2、创建存储过程,包含两个参数:start是

2020-10-24 16:40:41 1128

原创 Mysql中触发器的创建和效果 - 场景2:实现约束

假设有个需求,向employee表中新增员工时,工资不准低于5000元。1、使用check约束来实现2、使用触发器来实现(触发器一般用来实现更复杂的约束,比如需要同时对多个表中的数据进行判断等,我们这里简单示例一下)1、用check约束来实现create table employee_1(eno int primary key,ename varchar(100),deptno varchar(100),job varchar(100),sal float,check (sal>=

2020-10-22 13:42:31 548

空空如也

空空如也

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

TA关注的人

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