
测试开发
文章平均质量分 93
一个处女座的测试
1.专注于软件测试领域知识点分享 2.定期推送软件测试行业系统学习资料 3.剖析软件测试从业者实际工作中痛点 感谢各位的支持
展开
-
测试开发之Django实战示例 第十三章 上线
这本书系统的讲解最新的selenium 3的应用,涉及到持续集成、两大python单元测试框架unittest和pytest的应用,还有数据驱动、PO模型、selenium的分布式运行等等,非常全面,值得入手。以后的生活就轻松很多。ALLOWED_HOSTS中以一个.开始的域名,例如.educaproject.com,会匹配educaproject.com及所有的educaproject.com的二级域名,比如course.educaproject.com和django.educaproject.com。原创 2023-02-19 16:35:39 · 596 阅读 · 0 评论 -
测试开发之Django实战示例 第十二章 创建API
RESTful API是基于资源的,即URL用于表示网站所有的资源,HTTP的请求种类比如GET,POST,PUT或DELETE表示对应的行为,即获取,创建,更新和删除数据。REST框架提供了一个APIView视图,基于Django内置的View视图基础上增加了RESTful API的功能,但与View不同的是,APIView采用了REST框架自定义的处理Request和Response对象的方法,并且在返回HTTP响应的时候处理APIException错误,而且还包含内建的认证系统来管理对视图的访问。原创 2023-02-17 16:34:16 · 1208 阅读 · 0 评论 -
测试开发之Django实战示例 第十一章 渲染和缓存课程内容
中间件的顺序至关重要,中间件在HTTP请求进来的时候是按照从上到下的顺序执行,返回响应的时候按照从下到上的顺序执行。重写了get_context_data()方法,如果给了一个module_id,就将模板变量module设置为这个module_id对应的课程,如果没给出,默认为该课程的第一个章节。把一个HTTP请求导致的数据查询,业务逻辑处理结果,甚至渲染后的内容缓存起来,就可以避免在后续类似的请求中反复执行开销大的操作,会有效地提高网站的响应时间。在这个视图里,我们还保存了所有的课程和按主题过滤的课程。原创 2023-02-16 14:10:28 · 367 阅读 · 0 评论 -
测试开发之Django实战示例 第十章 创建在线教育平台
我们有两个选择,选项1是输入一个默认值,作为所有已经存在的数据行该字段的值,选项2是放弃这次操作,在模型中为该字段添加default=xx属性来设置默认值。我们需要一个字段存储课程和内容组织的顺序。表单集内的所有表单在提交的时候会一并提交,表单集可以控制显示的表单数量,对提交的最大表单数量做限制,同时对其中的全部表单进行验证。为了避免用户操作不属于该用户的内容,重写了get_queryset()方法以取得当前用户相关的课程,在其他增删改内容的视图中,我们同样需要重写get_queryset()方法。原创 2023-02-15 15:09:41 · 958 阅读 · 0 评论 -
测试开发之Django实战示例 第九章 扩展商店功能
这是通过对每种语言进行不同的格式设置实现的,对于支持的每种语言的格式,Django都有对应的配置文件,例如针对西班牙语的配置文件可以查看https://github.com/django/django/blob/stable/2.0.x/django/conf/locale/es/formats.py。比如一个商品的URL在西班牙语下是http://127.0.0.1:8000/es/2/te-rojo/,在英语里则是http://127.0.0.1:8000/en/2/red-tea/。原创 2023-02-14 16:46:00 · 760 阅读 · 0 评论 -
测试开发之Django实战示例 第八章 管理支付与订单
有很多Python库都可以用来生成PDF,常用的是Reportlab库,该库也是django 2.0官方推荐使用的库,可以在https://docs.djangoproject.com/en/2.0/howto/outputting-pdf/查看详情。当你需要继承Django的内置模板时,必须了解内置模板的结构,在https://github.com/django/django/tree/2.1/django/contrib/admin/templates/admin可以找到内置模板的信息。原创 2023-02-13 16:07:16 · 1312 阅读 · 0 评论 -
测试开发之Django实战示例 第七章 创建电商网站
我们将使用商品ID作为字典中的键,其值又是一个由数量和价格构成的字典,这样可以保证不会重复生成同一个商品的购物车数据,也简化了取出购物车数据的方式。你可能在实际的电商网站中会注意到,购物车的详细情况一直显示在页面上方的导航部分,在购物车为空的时候显示特殊的为空的字样,如果购物车中有商品,则会显示数量或者其他内容。这种展示购物车的方法与之前编写的处理购物车的视图没有关系,因此我们可以通过创建一个上下文处理器,将购物车对象作为request对象的一个属性,而不用去管是不是通过视图操作。原创 2023-02-12 14:03:03 · 1033 阅读 · 0 评论 -
测试开发之Django实战示例 第六章 追踪用户行为
首先,使用@receiver装饰器,将users_like_changed函数注册为一个事件的接收receiver函数,然后将其设置为监听m2m_changed类型的信号,并且设置信号来源为Image.users_like.through,这表示来自于Image.users_like字段的变动会触发该接收函数。这个视图使用了incr命令,将该键对应的值增加1。在需要为多对多关系存储额外的信息时(比如创建多对多关系的时间字段,描述多对多关系性质的字段),可能需要自定义一个模型作为多对多关系的中间模型。原创 2023-02-10 19:31:21 · 943 阅读 · 0 评论 -
测试开发之Django实战示例 第五章 内容分享功能
在开始试验编写的功能之前,还必须进行最后的设置。现在HTTPS协议使用的很广泛,为了安全起见,浏览器一般不会允许HTTP协议的小书签程序运行,因此必须给我们自己的网站一个HTTPS地址,但是Django的测试服务器无法自动支持HTTPS,为了测试小书签的功能,使用Ngrok可以建立一个隧道将自己的本机通过HTTP和HTTPS地址向外提供服务。在引入jQuery之后,增加了一个标签,定义了一个$(document).ready(),这是一个jQuery方法,在DOM加载完毕后会执行该方法。原创 2023-02-09 14:50:30 · 528 阅读 · 0 评论 -
测试开发之Django实战示例 第四章 创建社交网站
这里有一篇介绍django验证表单顺序的文章,可以看到,在执行自定义验证器之前,已经执行了每个字段的clean()方法,这个方法仅针对字段本身的属性进行验证,只要这个通过了,cleaned_data中就有了数据,之后才执行自定义验证器,最后执行form.clean()完成验证。在匹配失败的情况下,视图返回一个登陆无效信息。这里将我们的应用放在应用列表的最前边,原因是:我们稍后会为自己的应用编写验证系统的模板,Django内置的验证系统自带了一套模板,如此设置可以让我们的模板覆盖其他应用中的模板设置。原创 2023-02-08 15:46:48 · 643 阅读 · 0 评论 -
测试开发之Django实战示例 第三章 扩展博客功能
我们使用和模板标签类似的方式注册了模板过滤器,为了不使我们的函数和markdown模块重名,将我们的函数命名为markdown_format,但是指定了模板中的标签名称为markdown,这样就可以通过{{ variable|markdown }}来使用标签了。在上边的代码中,给title和body字段的搜索向量赋予了不同的权重。订阅信息是一个特定的数据格式,通常是XML文件,用于向用户提供这个网站的更新数据,用户通过一个订阅代理程序,订阅这个网站的feed,就可以接收到新的内容通知。原创 2023-02-07 19:31:57 · 865 阅读 · 0 评论 -
测试开发之Django实战示例 第二章 增强博客功能
默认情况下,Django对每一个模型字段都创建一个对应的表单元素。由于要在邮件中包含连接,因此使用了get_absolute_url()方法获取被分享文章的URL,然后将其作为request.build_absolute_uri()的参数转为完整的URL,再加上表单数据创建邮件正文,最后将邮件发送给to字段中的收件人。这里的{% url %}标签,其功能和在视图中使用的reverse()方法类似,使用URL的命名空间blog和URL命名post_share,再传入一个ID作为参数,就可以构建出一个URL。原创 2023-02-06 14:24:53 · 530 阅读 · 0 评论 -
测试开发之Django实战示例 第一章 创建博客应用
Django具有一套强大的API,可以供你轻松的实现增删改查的功能,这就是Django Object-relational-mapper即Django ORM,可以兼容MySQL,PostgreSQL,SQLite和Oracle,可以在settings.py的DATABASES中修改数据库设置。这就是我们的文章详情视图。Django接到对于某个URL的请求时,按照顺序从上到下试图匹配URL,停在第一个匹配成功的URL处,将HttpRequest类的一个实例和其他参数传给对应的视图并调用视图处理本次请求。原创 2023-02-05 16:26:53 · 703 阅读 · 1 评论