自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Sean_0819的博客

适合刚入门的测试童鞋,以及想要学习接口自动化、ui自动化、测试开发的童鞋,请关注我或者加我v哈

  • 博客(112)
  • 收藏
  • 关注

原创 十七、Webpack搭建本地服务器

HMR的全称是,翻译为模块热替换;模块热替换是指在应用程序运行过程中,替换、添加、删除模块,而无需重新刷新整个页面;

2023-09-11 19:55:52 386

原创 十六、Webpack常见的插件和模式

比如添加一个noscript标签,在用户的JavaScript被关闭时,给予响应的提示;比如在开发vue或者react项目时,我们需要一个可以挂载后续组件的根标签上面的代码中,会有一些类似这样的语法,这个是EJS模块填充数据的方式。在配置HtmlWebpackPlugin时,我们可以添加如下配置:指定我们要使用的模块所在的路径;在进行htmlWebpackPlugin.options.title读取时,就会读到该信息;

2023-09-11 14:53:25 397

原创 十五、Webpack打包图片-js-Vue、Label命令、resolve模块解析

通过哈希值重新命名的图片,光看名字我们已经不知道他对应的原图是具体哪一个了。

2023-09-10 22:58:08 1202 2

原创 十四、内置模块path、邂逅Webpack和打包过程、css-loader

这里重点讲一下path.resolve()。看上面的例子,从右往左开始解析,所以一开始解析的就是 /abc.txt ,这个时候就会把它当成一个绝对路径了,为什么?因为看到斜杠/ 默认就把他当成根目录了。/abc.txt那如果我们把 /abc.txt 前面加个点号. 会把 ./abc.txt 当成绝对路径吗?很明显不会。打印结果:看图片一眼就能看懂吧~

2023-09-07 19:44:13 340

原创 十三、前端包管理工具详解

我们已经学习了在JavaScript中可以通过模块化的方式将代码划分成一个个小的结构:在以后的开发中我们就可以通过模块化的方式来封装自己的代码,并且封装成一个工具;这个工具我们可以让同事通过导入的方式来使用,甚至你可以分享给世界各地的程序员来使用;那如果我们分享给世界上所有的程序员使用,有哪些方式呢?

2023-07-16 20:57:37 914

原创 十二、模块化开发

到底什么是模块化、模块化开发呢?一个个小的结构自己的逻辑代码自己的作用域变量、函数、对象等导出导入变量、函数、对象上面说提到的结构,就是模块;按照这种结构划分开发程序的过程,就是模块化开发的过程;对于早期的JavaScript没有模块化来说,确确实实带来了很多的问题;以前我们是怎么开发的?通过 直接引入进来。但是这个方法引入的时候,我这个aaa.js文件本身有作用域吗?

2023-05-05 10:56:19 1018 1

原创 十一、Node.js

在了解Node.js之前,我们先去了解一下什么叫v8引擎。这里参考一下其他博主的资料。这个时候我们再去看下Node.js的定义。

2023-04-27 17:55:49 783

原创 十、v-model的基本使用

登录、注册检索、创建、更新表单 input、textarea以及select元素双向数据绑定控件类型但 v-model 本质上不过是语法糖监听用户的输入事件来更新数据input里面的value属性,是决定当前输入框里的默认值的。此时我想把meesage绑定成input里面的默认的值,我该怎么去操作呢?那此时我在页面输入框里输入新的值的时候,是不是我还得把输入的内容再传给message?那我有一个疑惑,我怎么才能把我输入的内容再绑定给message呢?

2023-04-25 20:21:12 3186 2

原创 九、1~8文章的阶段案例

table {thead {th,td {序号书籍名称出版日期价格购买数量操作

2023-04-24 17:09:51 437

原创 八、vue_options之computed、watch属性选项

开发中我们在data返回的对象中定义了数据,这个数据通过插值语法等方式绑定到template中;当数据变化时,template会自动进行更新来显示最新的数据;但是在某些情况下,我们希望在代码逻辑中监听某个数据的变化,这个时候就需要用侦听器watch来完成了。我们先来一个例子:我们通过按钮点击事件触发修改message的方法,一旦message发生改变,template里面的数据也会自动去刷新。

2023-04-23 16:55:01 605

原创 八、vue-基础之列表渲染v-for、v-for中的key属性的作用

没有key的diff算法:有key的diff算法:

2023-04-21 23:27:47 1194

原创 七、vue-基础之条件渲染

在某些情况下,我们需要根据当前的条件决定某些元素或者组件是否渲染,这个时候我们就需要进行条件判断了。

2023-04-21 14:39:15 1005

原创 六、vue-基础之v-on(必须掌握)

我们来举个栗子🌰~我们写了一个div,里面包了一个button按钮。

2023-04-20 22:54:43 1031

原创 五、vue基础-指令之v-bind

前面要讲的一系列指令,主要是将值插入到模板内容中。但是,除了内容需要动态来决定外,某些我们也希望动态来绑定。

2023-04-19 14:48:54 7456

原创 四、vue基础-指令(一)、vscode代码片段

这样子我们是不是就可以直接快速生成代码片段了嘛。

2023-04-16 21:26:04 1091

原创 三、vue_options之data、methods属性选项

也可以传入一个对象必须传入一个函数Vue的响应式系统劫持对象的修改或者访问通过{{counter}}访问counter从对象中获取到数据修改counter的值app中的{{counter}}也会发生改变具体这种响应式的原理,我们后面会有专门的篇幅来讲解。

2023-04-16 17:49:45 1094

原创 二、vue之初体验-案例体验

咱们以前是怎么操作来着的?先获取元素等等...现在不需要了吧。其实这就是一个声明式编程。我只告诉你我这边要显示什么东西,至于怎么去操作DOM,你这个框架替我去完成。

2023-04-14 20:13:07 383

原创 一、vue之初体验-两种方式引入vue

如果我们没挂载之前(注释app.mount("#app")),界面长什么样子?挂载之后呢?是不是一目了然了?1 是不是我们自己开发的?是普通的html标签渲染出来的2 一开始是不是只是一个div标签?但是最终给我渲染出来Hello World?那是为什么呢?那是因为我们Vue框架创建了一个app对象并给了一个模板,这个模板就是告诉他,待会你通过vue给我渲染哪些东西。渲染出来后挂载到id=app的div元素上面。而且是挂载到div里面的。我们通过网页F12查看一下。

2023-04-13 21:56:43 1982

原创 四十六、docker-compose部署

一个项目肯定包含多个容器,每个容器都手动单独部署肯定费时费力。docker-compose可以通过脚本来批量构建镜像和启动容器,快速的部署项目。使用docker-compose部署主要是编写docker-compose.yml脚本。

2023-04-11 16:27:01 1510

原创 四十五、docker之nginx手动部署前端项目

我们查看上述说的 conf文件中 location 里 root /usr/share/nginx/html # root是指文件的根目录。我们看到最下面一行include /etc/nginx/conf.d/*.conf ,所以我们再把此目录下的conf文件复制过来看下是啥意思。www.hhxpython.com/aaa.txt 返回/usr/share/nginx/html/aaa.txt。root /usr/share/nginx/html # root是指文件的根目录。

2023-04-09 00:57:43 1766

原创 四十四、docker手动部署后端

然后我们 docker exec -it ck13_django sh 进入这个容器,发现我们项目代码没有映射进来,所以我们只能停掉并且先删除ck13_django这个python容器。因为这里没有做端口映射,所以我外网访问不了,所以我们再去打开一个云服务器窗口,还是进入这个容器(等同于在同一个电脑里面)。我们看到celery_beat在不停的退出,我们在logs目录下查看下日志tail celery.log。所以我们需要再学一个库。下载后复制刚才的git地址去拉取项目,发现没有配公钥,还得配下公钥。

2023-04-07 20:36:56 396

原创 四十三、celery框架入门

Celery是使用python编写的分布式任务调度框架。

2023-03-30 23:36:49 573

原创 四十二、实战演练之接口自动化平台的测试步骤执行,测试场景执行,测试计划执行

其中,函数run_case 用来运行单条用例,_ get_env_config 函数用来获取需要运行的环境配置。

2023-03-24 18:11:47 220

原创 四十一、实战演练之接口自动化平台的测试计划接口设计

接口名称: /test_plans/请求方式: POST参数格式: JSON请求参数:参数变量名类型说明是否必传测试计划名称name字符串测试步骤id是项目idproject整数测试场景id是测试场景idscenejson执行顺序是请求示例:json格式参数返回示例响应状态码:201DELETE路径参数。

2023-03-24 15:49:30 174

原创 四十、整理嵌套序列化器的使用方法

下面提到的一和多 就是表之间的关系是一对多还是多对一的意思。第一个场景 是在一的一方去嵌套序列化器,所以source是用到多的一方的小写模型名+_set第二个场景 是在多的一方去嵌套序列化器,source直接引用相关联的模型所对应的字段。

2023-03-24 14:52:01 373

原创 三十九、实战演练之接口自动化平台的测试场景步骤接口设计

添加了一个action用来进行排序。

2023-03-23 18:01:24 303

原创 三十八、实战演练之接口自动化平台的测试场景接口设计

接口名称:/test_scenes/pk/接口名称:/test_scenes/pk/接口名称:/test_scenes/id/接口名称:/test_scenes/接口名称:/test_scenes/请求方式:PUT/PATCH。请求方式:DELETE。请求参数: 无返回示例。响应状态码: 201。响应状态码: 204。响应状态码: 200。响应状态码: 200。响应状态码: 200。

2023-03-23 17:54:11 176 1

原创 三十七、实战演练之接口自动化平台的文件上传

上传文件功能主要针对需要测试上传文件的接口。原理是,把要测试上传的文件先上传到测试平台,然后把路径写入 用例中,后台真正测试时再将其进行上传。django框架中上传文件可以使用FileField 字段,它保存的是上传文件的路径。默认情况下,文件上传后保存在MEDIA_ROOT 配置下的路径中。然后,在项目根目录创建目录upload_files。/upload/POSTform表单文件file文件上传文件是form格式参数DELETE路径参数无响应状态码:204 响应数据:无/upload/GET无。

2023-03-23 16:13:46 531

原创 三十六、实战演练之接口自动化平台的测试步骤管理接口设计

测试步骤详情中需要展示接口信息,所以单独创建一个序列化器用来序列化测试步骤详情。请求方式: POST。

2023-03-22 20:05:57 342

原创 三十五、DRF中的过滤、Django中的过滤后端

REST framework 的通用列表视图的默认行为是返回模型管理器的整个查询集。通常,您希望 API 限制查询集返回的项目。过滤子类化的任何视图的查询集的最简单方法是覆盖GenericAPIView.get_queryset() 方法。覆盖此方法允许您以多种不同方式自定义视图返回的查询集。您可能希望过滤查询集以确保只返回与当前已通过身份验证的发出请求的用户相关的结果。您可以通过request.user 的值进行过滤来实现。另一种过滤方式可能涉及基于URL 的某些部分限制查询集。

2023-03-21 16:40:53 657

原创 三十四、实战演练之接口自动化平台的项目环境管理接口设计

请求示例:/test_envs/?接口名称:/test_envs/环境id/接口名称:/test_envs/环境id/接口名称:/test_envs/环境id/接口名称:/test_envs/接口名称:/test_envs/请求方式:PUT/PATCH。debug模式全局变量。请求方式:DELETE。debug模式全局变量。响应状态码: 201。响应状态码: 204。响应状态码: 200。参数格式:url参数。响应状态码: 200。响应状态码: 200。

2023-03-21 15:56:29 228

原创 三十三、实战演练之接口自动化平台的项目接口管理接口设计

POSTJSON接口名称name字符串项目接口名称是接口地址url字符串接口地址是请求方法method字符串请求方法是接口类型type字符串接口类型是所属项目project整数所属项目id是json格式参数DELETE路径参数无响应状态码:204 响应数据:无PUT/PATCHJSON接口名称name字符串项目接口名称put请求必传接口地址url字符串接口地址put请求必传请求方法method字符串请求方法put请求必传接口类型。

2023-03-21 15:02:05 408

原创 三十二、实战演练之接口自动化平台的模型创建、项目管理接口设计

注意在配置文件中注册应用。

2023-03-20 21:37:01 416

原创 三十一、实战演练之用户注册接口设计

POSTJSON用户名username字符串用户名是密码password字符串密码是确认密码字符串确认密码是邮箱email字符串邮箱是手机号码mobile字符串手机号码是所有人可以访问。

2023-03-18 19:07:20 215

原创 三十、实战演练之用户登录接口设计、登录功能前后端联调

接口名称:/users/login/请求方式:POST参数格式:JSON请求参数:参数变量名类型说明是否必传用户名username字符串用户名是密码password字符串密码是请求示例:json格式参数返回示例:响应状态码: 200响应数据:2. token刷新接口设计接口名称:/users/token/refresh/请求方式:POST参数格式:JSON请求参数:参数变量名类型说明是否必传refresh_tokenrefresh字符串刷新token值是请求示例:json格式参数返

2023-03-18 16:09:30 1756

原创 二十九、实战演练之用户认证

身份验证是将传入请求与一组标识凭据(例如请求来自的用户或用于签名的令牌)相关联的机制。然后,和策略可以使用这些凭据来确定是否应该允许请求。

2023-03-18 11:00:50 642

原创 二十八、实战演练之定义用户类模型、迁移用户模型类

一旦一个模型里面的Meta里面abstract = True,那这个模型就是抽象模型。抽象模型有啥用呢?就是用来被继承。我们在迁移的时候,他不会把这个模型也去映射表。可以理解为就是一个模板,其他模型把他继承之后,就能共用里面的字段(比如AbstractUser里面的username、first_name、last_name、email等等)。其中 USERNAME_FIELD 就是指定到底是哪个字段作为django默认的凭证。REQUIRED_FIELDS指定的字段和你username是否一对一匹配的上。

2023-03-17 22:40:56 389

原创 二十七、实战演练之创建用户模块子应用

变量中的目录列表里查找。所以我们可以将项目下的apps 目录插入到sys.path 中,这样既可简化我们创建新应用时的操作,也可以优化导入效率。自动生成的应用配置中的name属性就是应用的名字,这在直接创建应用到项目根目录中时是不错的,但是现在我们 在应用的外面嵌套了一层,需要修改name的属性为导入应用的python格式的完整路径,所以修改。在INSTALLED_APPS 中添加users 应用的配置类的导入点分隔路径。如果没找到,解释器再从。注册方式同上,这样可以不用修改应用的配置类的name属性了。

2023-03-17 16:24:56 583

原创 二十六、实战演练之配置工程日志

django使用python原生的logging日志模块。link:python 日志模块的使用 - 测试派日志 软件开发中通过日志记录程序的运行情况是一个开发的好习惯,对于错误排查和系统运维都有很大帮助。Python标准库自带了强大的logging日志模块,在各种python模块中得到广泛应用。一、简单使用 1. 入门小案例 import logging logging.basicConfig(level=loggin。

2023-03-17 11:12:57 441

原创 二十五、实战演练之配置MYSQL数据库

数据存储服务采用。

2023-03-17 11:09:47 428

空空如也

空空如也

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

TA关注的人

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