01 2021 档案

摘要:前言 前面一篇在查询我的收藏的时候,只显示了商品的id和收藏状态,并没有显示商品的详情。如果我们想查询的结果显示商品的详情,需关联到商品表。 嵌套对象 我们在查询的时候,希望能显示商品的详情 于是可以在序列化的时候嵌套 from .models import Goods, UserCollect f 阅读全文
posted @ 2021-01-31 20:03 上海-悠悠 阅读(562) 评论(0) 推荐(0)
摘要:前言 前面添加商品,商品code只能添加一次可以用唯一字段校验UniqueValidator,如果用户收藏商品,一个用户可以收藏多个商品,一个商品也可以被多个人收藏。 但是同一个人针对同一个商品,只能收藏一次,于是可以用UniqueTogetherValidator联合唯一校验 收藏商品 添加商品和 阅读全文
posted @ 2021-01-31 15:21 上海-悠悠 阅读(780) 评论(0) 推荐(1)
摘要:前言 我们在设置商品价格的时候,希望保留两位小数,FloatField是浮点数无法精确小数点几位,DecimalField可以精确几位小数点 DecimalField models.py设置商品表模型的时候,可以把商品价格设置DecimalField max_digits=10 整数位的长度为10位 阅读全文
posted @ 2021-01-31 09:42 上海-悠悠 阅读(1193) 评论(0) 推荐(0)
摘要:前言 当我们需要校验选项字段的时候,需用到 ChoiceField 来校验 选项 在 model 模型里面有个字段是选项字段, goods_status 可以有2种状态,0是下架,1是出售中,默认 class Goods(models.Model): """商品表""" goods_status = 阅读全文
posted @ 2021-01-29 23:05 上海-悠悠 阅读(1097) 评论(0) 推荐(0)
摘要:前言 接着前面ModelSerializer 反序列化的时候,写入到数据库时,有些字段是唯一的,不能重复写到数据库,如商品code,具有唯一性。 UniqueValidator UniqueValidator 是校验参数的唯一性,可以传一个queryset对象,也可以自定义message内容,以下是 阅读全文
posted @ 2021-01-29 17:40 上海-悠悠 阅读(916) 评论(0) 推荐(0)
摘要:前言 ModelSerializer 反序列化的时候,设置 read_only=True 可以忽略传过来的字段,不写入到数据库。 那么从数据库读出来的数据,序列化返回出来的时候,不显示某个字段,可以设置write_only=True 设置 read_only=True 接着前面这篇https://w 阅读全文
posted @ 2021-01-29 16:33 上海-悠悠 阅读(1042) 评论(0) 推荐(0)
摘要:前言 serializers.Serializer可以对modle模型中的字段序列化,并且必须写create和update两个方法。ModelSerializer可以看成是Serializer的一个升级版,功能更强大,更方便。 实际上ModelSerializer类继承了Serializer类 序列 阅读全文
posted @ 2021-01-28 23:52 上海-悠悠 阅读(813) 评论(0) 推荐(0)
摘要:前言 前面学了 jsonpath 可以很好的解析 json 数据,提取出我们想要的内容,对于平常的基本工作没太大的问题,但有一点点小遗憾。 jsonpath 的 python 库功能并不是很强大,不支持过滤器使用正则表达式,一些常用的函数也不支持,对于一些高级语法并不支持。 看到有小伙伴提到 JME 阅读全文
posted @ 2021-01-21 22:53 上海-悠悠 阅读(2120) 评论(0) 推荐(0)
摘要:# 前言 接口返回的json数据,需要取值后断言,本篇使用jsonpath来提取接口返回的数据 # 接口返回数据 接口返回一个 json 类型的数据,以下数据是很常见的一种数据结构 ``` { "code": 0, "msg": "success!", "data": [{ "id": 154, " 阅读全文
posted @ 2021-01-21 11:55 上海-悠悠 阅读(2662) 评论(1) 推荐(0)
摘要:前言 django-rest-framework 分页器提供了3中分页方式,前面一篇介绍了简单分页 (PageNumberPagination), 本篇继续介绍另外2个分页偏移分页 (LimitOffsetPagination) 和游标分页 (CursorPagination) 偏移分页 (Limi 阅读全文
posted @ 2021-01-19 16:52 上海-悠悠 阅读(789) 评论(0) 推荐(0)
摘要:前言 当查询出来的数据量非常大的时候,需要分页查询,django-rest-framework 提供了分页的支持。 有三种分页功能:PageNumberPagination,LimitOffsetPagination,CursorPagination。 分页器 django-rest-framewo 阅读全文
posted @ 2021-01-19 10:18 上海-悠悠 阅读(956) 评论(1) 推荐(0)
摘要:前言 在使用 django-rest-framework 开发接口的时候,我们希望能设置有些字段是必填字段,有些字段是非必填字段。 在使用ModelSerializer 序列化的时候,可以个字段加一个 required 参数 设置 True 或 False 。 ModelSerializer 序列化 阅读全文
posted @ 2021-01-18 09:22 上海-悠悠 阅读(2315) 评论(0) 推荐(1)
摘要:前言 使用 django-rest-framework 序列化的时候,返回的日期时间格式带T,查看不方便,如update_time=2021-01-18T08:56:47.756971。 需格式化改成我们平常用的日期时间格式 update_time=2021-01-18 08:56:47 问题描述 阅读全文
posted @ 2021-01-18 09:05 上海-悠悠 阅读(1018) 评论(0) 推荐(0)
摘要:前言 循环控制器可以设定永远循环和循环次数,缺少条件判断。While控制器可以在循环的基础上加判断,当条件为false的时候跳出循环。 While控制器 线程组-添加-逻辑控制器-While控制器 Condition (function or variable) 可以是条件(函数或变量)。条件为 F 阅读全文
posted @ 2021-01-15 16:16 上海-悠悠 阅读(1753) 评论(0) 推荐(1)
摘要:前言 当遇到需要对不同的条件做不同的操作时,我们可以使用 JMeter 中 if 控制器来实现。 如果(If)控制器 线程组-添加-逻辑控制器-如果(If)控制器 Expression(must evaluate to true or false) 表达式必须为true或false interpre 阅读全文
posted @ 2021-01-15 11:59 上海-悠悠 阅读(1424) 评论(0) 推荐(0)
摘要:前言 有些接口请求头部带上X-Requested-With:XMLHttpRequest ,返回数据是 json 。如果头部不加这个参数,返回数据是普通 html 文本。 这种头部带上X-Requested-With:XMLHttpRequest的是 Ajax 异步请求。 Ajax 请求 Ajax 阅读全文
posted @ 2021-01-14 16:36 上海-悠悠 阅读(4430) 评论(0) 推荐(1)
摘要:前言 简单控制器是jmeter里面最简单的一个逻辑控制器了,实际上它没任何功能,可以可以把多个请求实现分块或者分组。 简单控制器 线程组-添加-逻辑控制器-简单控制器 这个控制器没任何功能,可以修改控制器的名称和加注释 实现分组 当有多个请求的时候,可以按模块或功能点实现分组 不影响运行结果 阅读全文
posted @ 2021-01-14 15:11 上海-悠悠 阅读(887) 评论(0) 推荐(1)
摘要:前言 jmeter里面的循环控制器很好理解,跟线程组里面的循环是一样的。 循环控制器 线程组-添加-逻辑控制器-循环控制器 循环次数 可以设置循环的才是 永远 勾选后一直循环 设置循环次数 设置线程组2,循环3次,在循环控制器下添加商品A,设置循环控制器次数为3 运行结果会运行一次商品列表,循环3次 阅读全文
posted @ 2021-01-14 14:48 上海-悠悠 阅读(1019) 评论(0) 推荐(1)
摘要:前言 有这么一个场景:用户访问商品列表页,第一个用户下单商品A,第二个用户下单商品B,依次下单。 于是可以用的jmeter的逻辑控制器-交替控制器来实现 交替控制器 交替控制器:如果将采样器或逻辑控制器添加到交替控制器,则JMeter将在每个其下的控制器之间交替进行每次循环迭代。 线程组-添加-逻辑 阅读全文
posted @ 2021-01-14 14:18 上海-悠悠 阅读(1027) 评论(0) 推荐(1)
摘要:前言 假设我们有个压测场景是20%的用户访问商品A,80%的用户访问商品B,如何使用jmeter来控制用户的访问比例呢? 吞吐量控制器 线程组-添加-逻辑控制器-吞吐量控制器 吞吐量控制器是用来控制其下元件的执行次数,并无控制吞吐量的功能。 作用:控制其下的子节点的执行次数与负载比例分配,有两种方式 阅读全文
posted @ 2021-01-13 16:18 上海-悠悠 阅读(1592) 评论(2) 推荐(1)
摘要:前言 TPS就是每秒钟所处理的事务数,那么到底什么是事务呢? 事务是用户自定义的一个标识,是一个或多个操作完成一个业务所花费的时间,事务时间反映的是一个操作过程的响应时间。 事务场景 电商场景大家并不陌生,用户先登录-浏览商品-添加到购物车-打开购物车列表-生成待支付订单-支付完成-订单生成。 从用 阅读全文
posted @ 2021-01-13 14:01 上海-悠悠 阅读(1530) 评论(1) 推荐(1)
摘要:前言 post请求的参数有一些是json格式,也有一些是x-www-form-urlencoded格式,前面讲签名的时候获取到post请求的是json格式。 本篇继续讲x-www-form-urlencoded格式的请求body如何获取到。 x-www-form-urlencoded 在请求头部添加 阅读全文
posted @ 2021-01-12 16:17 上海-悠悠 阅读(3665) 评论(0) 推荐(2)
摘要:前言 前面在 BeanShell 里面是通过 java 脚本实现请求的预处理,jmeter里面也可以调用python的脚本,需安装 jython.jar 的插件. Jython 是 Python 的纯 Java 实现。她无缝地结合了 Java 类与 Python,使用户能以 Python 语言的语法 阅读全文
posted @ 2021-01-12 11:00 上海-悠悠 阅读(2122) 评论(0) 推荐(4)
摘要:前言 python 里面可以用 replace 实现简单的替换字符串操作,如果要实现复杂一点的替换字符串操作,需用到正则表达式。 re.sub用于替换字符串中匹配项,返回一个替换后的字符串,subn方法与sub()相同, 但返回一个元组, 其中包含新字符串和替换次数。 sub介绍 Python 的 阅读全文
posted @ 2021-01-11 11:34 上海-悠悠 阅读(2945) 评论(0) 推荐(1)
摘要:前言 Leetcode上有个练习题,也是面试经常会遇到的:请实现一个函数,把字符串 s 中的每个空格替换成"%20" 替换字符串 请实现一个函数,把字符串 s 中的每个空格替换成"%20" 输入:s = "We are happy." 输出:"We%20are%20happy." ''' 请实现一个 阅读全文
posted @ 2021-01-11 09:33 上海-悠悠 阅读(1178) 评论(0) 推荐(0)
摘要:前言 re.search扫描整个字符串并返回第一个成功的匹配。re.findall返回字符串中所有不重叠匹配项的列表,如果没有匹配到返回空list不会报错。 search匹配对象有3个方法:group() groups() groupdict() ,这3个方法使用上会有一些差异。 如果只需匹配一个, 阅读全文
posted @ 2021-01-07 22:08 上海-悠悠 阅读(4095) 评论(0) 推荐(0)
摘要:前言 re是python的一个正则匹配库,可以使用正则表达式匹配出我们想要的内容 findall 使用 findall 看下源码介绍, 返回字符串中所有不重叠匹配项的列表。 findall匹配的时候,会把结果放到list返回,如果没有匹配到返回空list不会报错 pattern 匹配的正则表达式 s 阅读全文
posted @ 2021-01-06 23:46 上海-悠悠 阅读(2212) 评论(0) 推荐(0)
摘要:前言 如果本地有个分支不想要了,如何删除?远程仓库的分支不想要了,如何删除? git仓库经常会用到分支管理代码,本篇讲下git创建分支和删除分支相关的操作。 git 创建分支 git branch 可以查看当前的所有分支 >git branch * master 创建分支git branch 分支名 阅读全文
posted @ 2021-01-06 21:47 上海-悠悠 阅读(1106) 评论(0) 推荐(0)
摘要:前言 接口请求 body 带有 sign 签名参数,sign 签名是根据请求 body 除去 sign 本身参数后,拼接请求参数最后 md5 加密生成的。 前面一篇是把 sign 前面参数放到请求的 body 里面,这篇继续讲把签名参数放到请求头部的情况。 实现方式 http 请求需要进行签名校验 阅读全文
posted @ 2021-01-05 22:24 上海-悠悠 阅读(2496) 评论(1) 推荐(1)
摘要:前言 接口请求body带有sign签名参数,sign签名是根据请求body除去sign本身参数后,拼接请求参数最后md5加密生成的。 使用 jmeter 测试接口,我们希望在请求之前修改 post body 里面的 sign 参数的值为签名的值。 sign签名 签名一篇的实现方式是添加 BeanSh 阅读全文
posted @ 2021-01-04 22:37 上海-悠悠 阅读(2441) 评论(0) 推荐(0)
摘要:前言 pytest 使用 parametrize 参数化的时候,有多组测试数据,需要对其中的一些测试数据加标记跳过,可以用pytest.param实现。 pytest.param 先看下 pytest.param 源码,可以传三个参数 param values :按顺序传参数集值的变量args ke 阅读全文
posted @ 2021-01-04 18:25 上海-悠悠 阅读(2554) 评论(0) 推荐(0)
摘要:前言 jmeter 的断言插件有很多,如果我们想提取返回的json值里面的内容去断言,可以用到 BeanShell 断言 BeanShell 断言 在请求后添加-断言-BeanShell 断言 接口返回的json内容 { "code":0, "msg":"login success!", "user 阅读全文
posted @ 2021-01-04 15:56 上海-悠悠 阅读(2092) 评论(0) 推荐(1)
摘要:前言 一般公司对外的接口都会用到sign签名,对不同的客户提供不同的apikey ,这样可以提高接口请求的安全性,避免被人抓包后乱请求。 之前讲过用python代码实现sign签名,这次介绍jmeter上如何实现sign签名,思路都是差不多的。 sign签名 签名参数sign生成的方法 第1步: 将 阅读全文
posted @ 2021-01-04 13:39 上海-悠悠 阅读(2828) 评论(0) 推荐(2)