- 博客(32)
- 收藏
- 关注
原创 Linux shell命令
变量名=变量值: 等于号两边没有空格变量命名规范:不能以数字开头,由字母、数字、下划线组成输出变量内容:echo $变量名变量的释放: unset 变量名特殊的变量: 带有空格的变量定义双引号""如果变量值中存在$变量名的话,那么输出结果将会是变量名对应的变量值如果想原样输出内容,可以在$变量名前面加转义字符\单引号:''如果变量值中存在$变量名,那么将原样输出反单引号``存放的是命令。
2023-04-04 17:23:04
179
原创 Postman接口请求实战
请求体与Content-Type头域在使用POST方法进行接口测试时,需要特别注意请求参数在body体中的格式及请求头中Content-Type头域,头域规定了接口接受的请求参数传值格式在Postman请求体传递参数时,在body菜单中设置请求体的格式:x-www-form-urlencoded : 对应于头域中Content-Type的值为x-www-form-urlencoded,该类型是以键值对形式发送的表单参数,同时参数会携带在url中。form-data : 对应于头域中Content-
2021-10-26 19:56:50
2869
原创 自定义WebDriverEventListener事件监听事件
一、自定义WebDriverEventListenerimport org.openqa.selenium.WebDriver;import org.openqa.selenium.support.events.AbstractWebDriverEventListener;public class MyWebDriverEventListener extends AbstractWebDriverEventListener { public void onException(Throwa
2021-04-11 16:56:41
1097
原创 WebUI自动化常见的问题
一、无法定位下拉框展开的元素现象:点击下拉框之后,下拉框列表展开,当使用F12,抓取元素时,下拉框列表自动收缩,导致元素定位不到处理方式:使用js函数技巧之 setTimeout(function(){},5000),setTimeout的作用是将函数推迟第二参数设定的毫秒数后再执行二、元素的高度现象:某些情况必须让你读取一些条款信息之后,才让你进行下一步操作,而往往这些条款信息比较长,中间就用滚动条进行滚动,滚动条滑到最底下,下一步操作的按钮才会高亮显示,让你可以进行下一步操作,自动化处理有
2021-04-03 16:32:39
1101
原创 pytest allure报告-装饰器扩展动态标题
#-*- coding: UTF-8 -*-import sysimport oscurPath = os.path.abspath(os.path.dirname(__file__))rootPath = os.path.split(curPath)[0]sys.path.append(rootPath)import allurefrom functools import wrapsclass AllureUtils: @staticmethod def dynami
2020-10-03 18:58:16
301
原创 pytest执行测试前置和后置环境信息处理
测试框架结构├─config ----配置文件目录├─report ----测试报告目录│ ├─allure ----allure测试报告│ │ ├─allure_report│ │ ├─assets│ │ └─tmp│ └─htmlcov ----覆盖率测试报告├─run_interface_test ----接口测试运行入口├─service ----封装业务操作│ ├─api│ │ ├─Business│
2020-10-03 18:40:00
858
原创 Appium环境搭建之Android SDK及模拟器的下载配置
C:\Windows\System32\drivers\etc右击hosts文件,最后一行添加74.125.237.1 dl-ssl.google.com
2020-09-08 23:39:22
3168
原创 Prometheus+Grafana监控方案
标题虚拟机安装centos7:1、网络配置: cd /etc/sysconfig/network-scripts vi ifcfg-ens33 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no &nbs
2020-09-03 23:28:36
479
原创 Jmeter跨线程组传参---全局变量
在接口测试过程中,往往一个请求需要另一个请求的响应信息,比如进行一些业务操作,需要依赖获取token请求的token值,而这两个请求分别位于不同的线程组中,该如何处理呢?一、通过正则表达式或者Json提取器获取响应信息获取token请求的响应信息:如上图,在获取token请求下,添加Json提取器,提取响应信息的token值,变量名为token二、将正则表达式或者Json提取器得到的值,设置为全局变量利用函数助手中的setProperty函数,属性名称为全局变量名称,Value of prop
2020-08-27 22:52:32
1062
原创 Jmeter使用代理服务器开发脚本
一、设置浏览器代理,这里以Win10系统、Chrome浏览器为例二、在Jmeter新创建的测试计划中添加HTTP代理服务器三、设置代理服务器3.1 过滤一些图片、css、js文件的请求在排除模式中,增加 .*\xxx.*,其中xxx为请求中包含的字符串3.2 在录制脚本前,目标控制器的选择,选择指定线程组,这样录制的脚本信息就会存储在该线程组下...
2020-08-17 23:13:08
255
原创 Jmeter请求如何处理cookie
Jmeter请求处理cookie的方式有两种:1、直接在线程组中添加 HTTP Cookie管理器,放在该线程组的第一个子节点2、在请求中添加子节点HTTP Cookie管理器,在该HTTP Cookie管理器中可以自定义该请求的Cookie信息查看登录请求响应结果在登录请求下添加正则表达式提取器,在登录请求的响应头信息中提取sessionid如何使用提取出来的sessionid值呢?构建查询请求,查询请求需要依赖登录请求的sessionid信息,在查询请求下添加HTTP Cookie管理
2020-08-15 19:28:49
653
原创 Jmeter使用Json提取器构建异步请求
一、构建mock异步请求服务{ "description": "异步请求-创建订单", "request" : { "method": "POST", "uri" : "/api/order/create/", "forms": { "user_id": "user_10012", "goods_id": "goods_10013", "num": "2", "amount": "500" } }, "response" : {
2020-08-15 15:27:37
432
原创 Mock技术
一、moco jar包下载及运行 1、访问https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/1.1.0/,下载moco-runner-1.1.0-standalone.jar,将下载下来的jar包拷贝至指定路径 2、在jar所在的路径下,新建json文件,输入以下代码,进行保存[ { "description" : "Mock技术模拟", "request" :{ "uri" : "/mock_demo"
2020-08-14 23:01:56
400
原创 Jmeter进行接口测试,如何做参数化?
一、文件参数化1、在已创建的线程组中,右击->添加->配置元件,选择CSV Data Set Config,添加为该线程组的子节点,如下图,为CSV数据文件的配置界面; **文件名:**为保存测试用例数据文件的路径,下图为我们的测试用例数据,其中数据字段之间用英文逗号进行分隔,多条测试用例之间用换行进行分隔,并且支持csv,txt,dat三种格式文件编码:变量名称:为参数的名字,用${sku}替换要参数化的地方。如果有多个变量,则用逗号隔开,如username,password忽
2020-08-14 20:15:34
3751
原创 Jmeter使用正则表达式提取器
正则表达式一、正则表达式提取器如果一个正则表达式提取一个值,那么模板以$1$,即可将匹配的值提取出来;例如:Set-Cookie: sessionid=(.*);如果一个正则表达式需要提取多个值,那么模板以$1$ $2$…$n$将匹配的值进行提取;例如:{“status”:1,“code”:"(.*)",“msg”:"(.*)"}正则表达式提取的值如何使用?如果正则表达式只获取一个值,那么就可使用${引用名称}的方式使用;如果正则表达式获取多个值,那么在线程组中添加调试取样器,然后发送
2020-08-14 00:12:18
4148
原创 pytest参数化--读取Excel数据
一、使用xlrd库,封装常用读取xls的操作模块:XlrdUtils.py# -*- coding:utf-8 -*-import xlrdclass XlrdUtils(object): def __init__(self,filename): self.workbook = xlrd.open_workbook(filename, formatting_info=True) def get_cell_value(self, sheet_index_or_n
2020-07-30 22:38:20
4119
1
原创 pytest框架初认识
一、环境准备:安装pytest:pip install pytest测试文件以test开头或结尾测试用例类必须以Test开头,不能带有init方法测试用例函数以test开头或结尾断言使用基本的assert即可pytest -s -s 输出打印信息;pytest --html=报告路径:生成html报告,需要安装 pytest-html库:pip install pytest-htmlassert语句,如果断言失败,它后面的语句不会执行conftest.py...
2020-07-16 23:21:16
352
原创 接口测试-上传文件
1、打开fiddler,在UI界面中,选择文件,进行上传文件操作2、在Fiddler中,检索刚才上
2020-07-05 16:11:09
2624
原创 接口测试关键字解析
一、Cookie1、浏览器的Cookies是保存在浏览器的某个位置上2、服务器可以通过:响应头中的Set-Cookie参数,对客户端的Cookie进行管理3、浏览器的每次请求,都会将该站点的Cookie信息发送给服务器总结:接口测试Cookie信息获取方式:从响应的头信息中获取,response.headers返回的类型为字典类型,通过response.headers[“Set-Cookie”]即可获得Cookie信息...
2020-07-04 18:53:38
560
原创 接口测试:requests.post()方法中,data与json参数的区别及响应内容及请求体内容Unicode编码的处理
# -*- coding:utf-8 -*-import sysimport oscurPath = os.path.abspath(os.path.dirname(__file__))rootPath = os.path.split(curPath)[0]sys.path.append(rootPath)import requestsHost = "http://127.0.0.1"add_course_url = f"{Host}/api/mgr/sq_mgr/"headers =
2020-07-01 00:55:39
1690
原创 持续集成 《Centos安装与卸载GitLab》
Gitlab安装1、安装相关依赖sudo yum install curl policycoreutils openssh-server openssh-clients2、启动ssh服务,并且设置为开机自启动sudo systemctl enable sshdsudo systemctl start sshd3、安装及设置postfix开机自启,并且启动,postfix支持gitlab发信功能sudo yum install postfixsudo systemctl enable post
2020-06-06 20:00:31
188
原创 cmd命令行运行python程序
引用自定义模块,,报ModuleNotFoundError: No module named “XXXX”在 # -- coding=utf-8 --之后,紧跟以下代码块import sysimport oscurPath = os.path.abspath(os.path.dirname(__file__))rootPath = os.path.split(curPath)[0]sys.path.append(rootPath)...
2020-06-03 23:34:30
250
原创 Requests之session封装
HttpRequestLib.pyimport requestsfrom requests import utilsimport urllib3import jsonfrom contextlib import closingfrom requests import exceptionsclass HttpRequest(object): # base_url的作用,为后续区分开发和测试环境url提供方便 def __init__(self, base_url="", *
2020-05-24 23:17:37
1049
原创 Fiddler抓包工具配置--IE、Chrome
1、打开Fiddler Tool->Fiddler Options->HTTPS1.1 选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求,第一次会弹出证书安装提示!此时都选择"否",先不安装证书1.2 点击"Actions",选择"Reset All Certificates",重置所有的证书1.3 重置所有的证书,Fiddler还会提示安装证书的请求,选择"是",此时按步就搬,安装证书!1.4 安装完证书之后,切记重启浏览器,此时Fid
2020-05-14 23:29:06
1249
原创 Python之configparser模块的封装
# -*- encoding:utf-8 -*-from configparser import ConfigParserimport osclass ConfigFileUtils: def __init__(self, config_file, encode="utf-8"): if os.path.exists(config_file): self.__cfg_file = config_file else:
2020-05-10 21:35:00
530
原创 类属性与实例属性
class Tool(object): num = 100 #定义公有的类属性 __price = 20 #私有的类属性 def __init__(self,name): self.name = name #定义实例属性 Tool.num+=100 #类属性print(Tool.num)tool = Tool("牙刷")print...
2020-01-12 11:34:38
211
原创 python函数参数列表_缺省参数&不定长参数
def print_value(a,b,c=12,*args,**kwargs): print(a) print(b) print(c) print(args) print(kwargs) print("="*30) #必需参数:必需参数以正确的顺序传入参数,调用时的数量必需和声明时一样print_value(10,20) #验证默认的参...
2019-12-19 23:14:57
255
原创 python中全局变量与局部变量的区别
#定义一个全局变量m = 0;def sum_1(): m = 13 #在函数内部创建了局部变量,绝非修改全局变量 n = 12 return m+ndef sum_2(): global m #声明m是一个全局变量 m = 13 #对全局变量m进行修改 n = 12 return m + ndef sum_3(): m ...
2019-12-16 22:38:06
455
原创 python列表中append方法与extend方法的区别
s1 = [1,2,3]s2 = [4]s1.append(s2)a1 = "AD"print(s1.append(s2))#在原列表中进行修改,不会产生新的列表,无返回值#使用append方法,append会将添加的元素当成一个整体添加到列表中print("使用append方法添加列表:%s"%s1)s1.append(a1)print("使用append方法添加字符串:%s"%...
2019-12-14 21:06:04
235
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人