自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 pytest的小细节,内含ModuleNotFoundError: No module named ‘config‘解决方案和自定义命令行参数的使用方法

1.开发工具内在当前命令行路径下输入pytest时,只能执行当前路径下包含的测试用例。2.开发工具内在顶层命令行路径下输入pytest时,能执行该项目中所有的测试用例。3.开发工具内想要通过pytest执行具体的test_xx.py时,必须先切换到相应的路径下。4.os.system(‘pytest test_abc.py -s --abc=abc’)pytest.main([‘test_abc.py’, ‘-s’, ‘–abc=cba’])这两种方式的效果一样,只是pytest.main内需要加

2021-11-30 14:40:23 12162 1

原创 JMeter定时器、前后置控制器-持续更新

吞吐量大致计算=线程数/启动时间*循环次数含义:每秒启动一个线程,每个线程循环5次,吞吐量就接近5。循环控制器交替控制器假设交替控制器下包含x个接口事件,那么每个线程会根据执行次数从x中列表循环执行。如:2个线程,循环5次。随机顺序控制器假设随机顺序控制器下包含x个接口事件,那么每个线程会把x个事件全部执行,但是顺序随机。随机控制器假设随机控制器下包含x个接口事件,那么每个线程会在x中随机选择一个执行。json提取器可根据接口返回,取指定键值,例如token。be

2021-02-24 14:47:20 325

原创 python+pytest/unittest+yaml+ddt+allure/HTMLTestRunner生成测试报告

前言:请自行安装好yaml/allure/jre,并且配置好环境变量HTMLTestRunner.py已修改,支持python3.9。请把它放在你的python\Lib目录下HTMLTestRunner.py下载1.项目文件结构目录allureReport:用来存放allure生成的测试报告HTMLTestRunnerReport:用来存放HTMLTestRunner生成的测试报告common(可不用):用来存放封装好的方法,比如连接数据库的方法、发送登陆协议的方法等等config(可不用

2020-12-08 15:49:39 3770 11

原创 jenkins生成allure测试报告避坑指南

被坑图镇帖遇到的一部分报错C:\ProgramData\Jenkins\.jenkins\workspace\allureReport>exit 1 Build step 'Execute Windows batch command' marked build as failureERROR: Build step failed with exceptionru.yandex.qatools.allure.jenkins.exception.AllurePluginException: C

2022-05-12 16:02:16 1374 2

原创 jenkins的一些坑,你遇到了几个?

当你在pycharm中运行好好的一段代码部署到jenkins上之后,发现开始报错。请排查以下几个问题。1.环境变量问题举例:‘python’ 不是内部或外部命令,也不是可运行的程序或批处理文件。这个时候去排查jenkins是否配置了环境变量,注意,我们本地配置好环境变量以后还要到jenkins中配置环境变量。2.代码拉取失败问题ERROR: Error cloning remote repo ‘origin’此类问题抓住一个点,通行证(密令、SSH、账号密码)是否失效或者错误,且验证方式不能

2022-05-11 14:20:15 545

原创 jenkins持续集成

1下载:https://www.jenkins.io/找到.war下载2运行打开cmd敲指令java -jar 路径(比如d:\jenkins.war)–httpPort=xxxx(默认为8080)3打开jenkinshttp://localhost:8090打开路径,复制管理员密码粘贴密码,点击继续安装推荐的插件安装完毕创建用户...

2022-02-08 11:12:29 645

原创 sql注入测试思路

2022-01-26 10:57:45 3218

原创 jmeter场景模型构建

业务需求假设公司领导现在给你分配了一个性能测试需求如下:1:公司有 1000 人在上班时间段会登录平台进行打卡操作,可能会登录打卡多次2:业务高峰时间段在 8:00-8:30,半小时3:需要保证 90% 用户的响应时间在 1s 以内4:保证在半小时内支撑 5000 笔打卡业务完成,同时 90% 业务时间不超过 1s,半小时内最大系统并发数能达到多少?每秒最大用户并发能达到多少?需求分解1:注册用户是 1000 人2:业务时间段是半小时,也就是 30 分钟,1800s3:需要保证 90% 业

2021-12-15 11:19:56 230

原创 fiddler的便利性设置

1.过滤2.请求时间打开customize rules,复制下面代码替换原有代码import System;import System.Windows.Forms;import Fiddler;// INTRODUCTION//// Well, hello there!//// Don't be scared! :-)//// This is the FiddlerScript Rules file, which creates some of the menu command

2021-12-14 10:06:08 241

原创 40行代码爬取10000张素材图

如何在某个网页上爬取想要的图片?1.分析前端代码(或者查看对应接口返回),找到图片资源的链接2.脚本获取前端代码或接口响应内容后,进行清洗,拿到可使用的链接3.通过链接获取到资源,以byte形式写入至目标路径以https://sucai.gaoding.com/plane/materials为例,共100页,接口响应内容包含资源路径,于是操作起来就很方便。请求地址:https://api-sucai.gaoding.com/api/search-api/sucai/templates/sear

2021-09-15 14:03:54 242

原创 JMeter之参数化

通过jmeter内置的CSV data set config(CSV数据文件设置)工具实现压测参数化处理。就是这个。数据结构调用方式结果

2021-09-13 16:26:39 83

原创 三次握手、四次握手

第一次握手:建立连接时,客户端发送syn包(Client:seq=0)到服务器,并进入SYN_SENT状态,等待服务器确认,此时十六进制的Syn bit置1。第二次握手:服务器收到syn包,ack=(Client:seq=0)+1,同时自己也发送一个SYN+ACK包(server:seq=0),此时服务器进入SYN_RECV状态。Syn和Ack bit都为1。第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK ,ack=(server:seq=0)+1,seq=(cl

2021-09-07 16:11:13 116

原创 re模块与正则

re解析数据常用方法re.findall(pattern, string[, flags])import restr = '123我是sjx456我是SJX'#pattern:sjxpattern = re.compile('sjx', re.I)'''• re.I(全拼:IGNORECASE): 忽略大小写• re.M(全拼:MULTILINE): 多行模式,改变'^'和'$'的行为• re.S(全拼:DOTALL): 点任意匹配模式,改变'.'的行为• re.L(全拼:LOCALE

2021-09-06 15:03:46 85

原创 queue与threading

import queueimport threadingimport time"""队列queue.Queue(maxsize=0): 先进先出,无参数默认无大小queue.LifoQueue(maxsize=0): 后进先出queue.PriorityQueue(maxsize=0): size最小的先出queue.SimpleQueue: 先进先出且不支持task_done和join方法队列的方法q.qsize(): 队列大小q.empty(): 队列是否

2021-09-06 14:05:46 277

原创 ddt与@pytest.mark.parametrize传入字典参数化例子

yaml数据:introduce: - name: 'A' age: '20' job: '测试工程师' - name: 'B' age: '20' job: '开发工程师'interface: - url: 'www.baidu.com' headers : {'Content-Type': 'application/json'} body: {'quest_ids': xxx} - url:

2021-08-10 14:07:56 950

原创 locust压测(1)

安装:pip3 install locust代码:from locust import User, task, between, constant, TaskSet, HttpUserclass Tasks(TaskSet): @task(1) def a(self): print('1') @task(9) def a(self): print('2') class MyUser(User):

2021-05-26 17:30:27 2189

原创 pytest.mark.paramatrize()功能一点通

Pytest中装饰器@pytest.mark.parametrize(‘参数名’,list)可以实现测试用例参数化,类似unittest的@ddt,但是比ddt要方便一点。参数名唯一时,list内直接写值,用例数量等于list内数据数量。多参数时,list中为多个元组,每个元组内的值的数量等于参数数量,用例数量等于元组数量。import pytestlist1 = ['what?', 'when?', 'where?', 'who?', 'how?']list2 = [(1, '一'), (2,

2021-04-08 14:57:53 485

原创 执行想要执行的用例:pytest.mark.自定义标签用例

功能介绍:如标题定义了hello和hi两个标签指令:pytest -vm hi py文件名/目录 只执行hi标签用例1、-v输出详细的信息2、-s 输出测试函数或测试方法print内容3、-k 按分类执行测试点4、-m 进行分组执行5、-x 执行失败立刻停止6、–maxfail执行失败的最大次数7、–tb=line 错误信息在一行展示import pytestclass Test1(object): def test_1(self): pass

2021-04-08 14:27:25 231

原创 pytest.mark.xfail()功能一点通

功能描述:预判用例失败。XPASS表示与预期不符,用例通过了。XFAIL表示与预期相符,用例失败。import pytest@pytest.fixture(scope='session')def count(): a = 1 b = 2 c = a + b return c@pytest.mark.xfailclass Test1(object): def test_1(self, count): assert count == 3

2021-04-08 13:41:29 392

原创 pytest.mark.skip()功能一点通

为了避免由于环境发生改变或者其他原因造成的测试脚本的阻塞,可用skip跳过某些用例。1.@pytest.mark.skip()的功能是跳过,可装饰于类与方法。括号内(reason=‘跳过原因’)2.@pytest.mark.skipif()的功能是跳过,可装饰于类与方法。括号内(判断, reason=‘跳过原因’)3.pytest.skip()也是跳过,不同于1的是它一般用于方法内,当进行if条件判断后执行该语句。1则更类似于一个烙印,打上后直接跳过。import pytestclass Te

2021-04-08 10:51:05 381

原创 pytest.fixture()功能一点通

pytest.fixture的作用1:与setup/tear_down的功能相同,相比之下更为灵活,由参数所控制其作用域。写法一:fixture装饰函数内,yield之前的语句起到前置作用,之后的语句起到后置的作用。作用域关键字scope,if scope='function'的话,每个测试函数执行一遍前后置。if scope='class'的话,每个测试类执行一遍前后置。以此类推。import pytest'''@pytest.fixture(scope='function')@pytes

2021-04-08 10:10:11 172 1

原创 Request接口自动化测试(yaml参数化)

作为一个测试工程师,当你拿到一个接口文档时,你需要考虑的几件事。1.接口是否已经开发完毕?2.接口是否较为复杂?3.有没有实施回归测试的必要?如果三个问题答案都为是,那么就有必要写一个自动化测试项目,方便以后进行回归测试。那针对自动化测试项目,我们要考虑到如何设计测试用例以保证覆盖到更多的功能,针对这些功能需要的一些数据,以及如何将数据传入脚本当中。本文将演示通过python的request/unittest/yaml库进行自动化测试。思路,创建一个yaml文件,里面是各个接口需要的数据以及返回

2021-02-23 10:49:23 2008 4

原创 __init__.py文件和__init__(self)函数的作用

让先看一下代码包结构:在TestCase下面有init.py,animal.py,case.py三个文件。我们在python面向对象编程中可以经常看到def __ init __(self):这是一个初始化函数,当你实例化一个类对象时,python会对该对象进行初始化。举个例子:这是animal.py模块的代码,里面有Dog和Cat两个类。每个类中有init()函数。class Dog(object): def __init__(self, name, colour):

2021-02-22 16:08:42 254 1

原创 什么是消息队列?

作为一个测试,近两天学习了消息队列,我也不知道什么时候能用上,就当知识储备了。先上概念:消息队列从字面的含义来看就是一个存放消息的容器。消息队列可以简单理解为:把要传输的消息放在队列中。消息:数据队列:一种先进先出的数据结构而我们把数据放到消息队列叫做生产者,从消息队列里边取数据叫做消费者。有什么用?1:解耦什么是解耦。首先了解耦合,多个系统之间通过接口互相调用,此时耦合性非常高。比如,支付系统要将用户完成支付的消息发送给积分系统,等待积分系统返回结果再发送消息给短信系统。引入消息队列后,

2021-02-02 11:46:38 160

原创 序列化,反序列化以及pyecharts制作柱状图

大家都知道计算机中有两个东西必不可少,内存和硬盘,且计算机是以二进制的形式将信息存储在硬盘当中。在接口自动化测试过程中,客户端发送请求给服务端,服务端返回数据给客户端,客户端拿到数据后可以将这些数据以二进制的形式存储在本地文件中,不易丢失。序列化的过程实际就是把数据存储到文件的过程,反序列化过程就是解析文件内容的过程。文章最后的pyecharts模块可以将你收集到的数据制成图标,方便分析,比如某网站的工资与职位信息,都可以去操作。例子:我们先将数据message转化成二进制,存储在testData文件当

2021-02-01 15:15:59 319 2

原创 python测试-并发测试基础-asyncio

协程,又称微线程,Coroutine。协程的作用,是在执行函数A时,可以随时中断,去执行函数B,然后中断继续执行函数A(可以自由切换)。但是协程只有一个线程执行。python属于解释型语言(逐句执行),在特定场景下同步执行会造成阻塞(执行不下去),所以要引入异步执行(多条通道完成语言的解释)。协程的使用不难,但是要真正掌握协程是非常困难的。本文将例举三种使用协程的方法,希望能够让更多的测试人能够使用上异步来提高测试效率,解决堵塞问题。有什么不懂的可以留言。协程官方文档第一种:import async

2020-12-31 15:54:03 642

原创 简单运用logging模块定位代码错误

近年来不管是开发还是测试,企业对其的代码能力的要求在逐渐提高,编写与调试是必不可少的工作内容。本文针对如何运用python的logging模块定位错误坐标做出演示,希望能够帮助到大家。非常简单清晰的两个例子。案例一:import logginglogging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s:

2020-12-30 21:11:29 292 2

原创 python告白小技巧邮件群发-python自动化测试-yagmail发送测试报告

本文主要内容,如何使用yagmail将自动化测试报告通过邮件发给自己/他人。了解这期内容后可以发散思维,比如通过定期任务给暗恋的人自动发送邮件,广泛撒网。1. 安装yagmailpip3 install yagmail2. 使用yagmail,给想表白的人发测试报告生成测试报告方式1生成测试报告方式2本地有了测试报告以后↓↓↓↓import osimport pytestimport yagmailsender = 'sjx@qq.com'

2020-12-25 14:52:34 508 2

原创 pytest-html避坑指南

前些天刚写完pytest+allrue和HTMLTestRunner两种生成测试报告的方法。今天,打工人又接到了新的任务,用pytest-html生成测试报告。不得不说,格式是真的漂亮,简洁,最主要是操作起来很简单!但是但是,自己试坑的话非常耗时,所以想写一篇避坑指南给大家。不逼逼,GO!非常果断地打开cmd,安装。pip3 install pytest-html在控制台执行。填写路径则执行路径下的测试用例并生成报告;路径错误则报错;不填路径则执行当前所在路径的测试用例并生成报告;

2020-12-22 21:24:42 1606 7

原创 关于INTERNALERROR>pluggy.manager.PluginValidationError: unknown hook ‘pytest_namespace以及pycharm虚拟环境新建

写这篇文章的原因是,python运行的虚拟环境由于不知缘由的行为而发生了改变导致报错:INTERNALERROR>pluggy.manager.PluginValidationError: unknown hook 'pytest_namespace。其他情况也有可能报这个错误,这里推荐一个方法,新建虚拟环境。不保证能够解决全部此类问题。 作者自己是排除了模块版本的差异,路径错误等所有问题才逼不得已换环境的。第一步:新建一个目录,此目录作为新的虚拟环境目录第二步:点击setting第三步

2020-12-22 20:26:33 1379 4

支持python3.9的HTMLtestrunner,没有新增其他功能

由于官方下载的HTMLTestRunner是基于python2写的,参照网上资料修改了一份支持python3 的HTMLTestRunner

2020-12-08

空空如也

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

TA关注的人

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