目录 自定义只读 自定义只写 序列化覆盖字段 二次封装Response 数据库关系分析 断外键关联关系 ORM操作外键关系 ORM四种关联关系 基表 系列化类其他配置(了解) 十大接口 BaseSerializer初始化方法 十大接口序列化总结 单查群查 单增群增 单删群删 单整体改/群整体改 单局部改/群局部改 群增群改配置 十大接口小结 字段提供就校验,不提供拉到 DjangoORM内置优化机制:一次最多查21条数据 models.py response.py serializers.py…
APP自动化跟WEB自动化所使用的框架基本一样,都是采用的PO模式结合pytest框架编写自动化测试脚本,为了提高代码的复用性.稳定性和易维护性,我们针对PO模式进行了二次封装,将日志,等待以及异常截图加入到其中,app相比较web而言,没有鼠标 .下拉框选择.frame切换.窗口切换和上传等操作,但它有属于自己的滑屏.toast获取.上下文切换.应用切换等操作. import time from datetime import datetime import allure from selen…
在PO模式当中,我们做到了页面对象与测试用例的分离,但在页面对象编写时,我们仍然还有优化的空间.页面对象有一些共同的基本操作,可以封装起来,并可以在基本操作当中加上日志和异常截图的处理.比如说我们在查找元素时,都需要等待,在PO模式当中,需要都写上等待和查找元素,那么就可以将其封装起来,包括其它的一些比如:文本获取.元素属性获取.鼠标操作.窗口切换.iframe切换.alert弹框关闭.文件上传.下拉框选择...... 当脚本运行的过程中,出现了用例失败,我们希望可以通过日志和截图来分析失败的原…
1.二次封装: 二次封装其实就是对一个类或者一个方法进行二次的改造增加新的功能. 2.一个类的二次封装: 我们以一个进程为例,我们把Process这个库进行二次封装,增加一些功能,在调用. thomasProcess.py为二次封装的类: from multiprocessing import Process import os,time class ThomasProcess(Process): def __init__(self,name): Process.__init__(self) s…
二次封装Response类 源码: class Response(SimpleTemplateResponse): """ An HttpResponse that allows its data to be rendered into arbitrary media types. """ def __init__(self, data=None, status=None, template_name=None, headers=None, ex…
复习 1.整体修改与局部修改 # 序列化get (给前端传递参数) #查询 ser_obj = ModelSerializer(model_obj) #只传递一个参数,默认是instance的参数,查询数据 # 反序列化post save() => create()(数据保存到数据库中) #添加 ser_obj = ModelSerializer(data=model_data) #传递data参数,保存数据 #反序列化put save() => update() #修改(需要传入instan…
基于Dapper二次封装了一个易用的ORM工具类:SqlDapperUtil,把日常能用到的各种CRUD都进行了简化封装,让普通程序员只需关注业务即可,因为非常简单,故直接贴源代码,大家若需使用可以直接复制到项目中,该SqlDapperUtil已广泛用于公司项目中. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;…
1.python mysql  redis mongodb selneium requests举得这5个库里面的主要被用户使用的东西全都是面向对象的,包括requests.get函数是里面每次都是实例化了一个新的Session类实例,只是看起来是调用函数,要想精确控制使用,直接使用requests get函数和post函数是不够用的.所以可以下个结论这5个库都是面向对象的. 2.通常情况下,这些库都是偏底层使用,暴露了很多基础api方法,大部分情况下会被用户进行二次封装来适合自己更好用. 在对这…
1.简介 上一篇宏哥介绍了如何设计支持不同浏览器测试,宏哥的方法就是通过来切换配置文件设置的浏览器名称的值,来确定启动什么浏览器进行脚本测试.宏哥将这个叫做浏览器引擎类.这个类负责获取浏览器类型和启动不同浏览器,并做一些前提操作,例如:最大化浏览器窗口和,打开测试服务器地址. 今天这篇宏哥打算介绍如何封装几个Selenium公共的方法到页面基类中去.首先宏哥给小伙伴或者童鞋们解释一下页面基类,看到基类,我们想起了继承.没错,在这个框架基于POM的思想上,我们需要利用继承的特点,来实现,减少我们重…
来源:StrivEver 链接:http://www.jianshu.com/p/4c77aee0b41c 上个版本为了增加用户体验,部分页面集成了离线缓存数据功能,于是就在项目里使用了数据库管理离线数据.下面交大家一步步学会使用FMDB,以及FMDB的二次封装,同事把我二次封装的数据库放出来,希望能够帮助大家快速学习,集成数据库功能吧. 一.首先看一下STDB文件结构   STDB文件结构 Table.h主要放一些Table的创建语句, 方便管理我的数据库各张表创建 DBDefine.h主要放…