自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (5)
  • 问答 (1)
  • 收藏
  • 关注

原创 一个很不错的前端工具,界面可以直接拖拽直接使用,不用担心自己的平台界面不好看了!!!

94b682d6-3ffb-49b4-b1ab-c249556aecd1

2019-04-01 09:51:27 19603 8

原创 下载python 教学视频.md

链接: https://pan.baidu.com/s/1zmrzNZ9_BURI3jmKWcWncw 提取码: rse4

2018-09-21 09:49:08 176

原创 gradle 介绍及使用

gradle

2022-08-03 20:26:37 557 1

原创 jenkins搭建试炼(一)

jenkins搭建试炼(一)

2021-11-16 13:54:44 471

原创 Python 字符串中空格替换(发现钉钉bug 解决)

这里Python 字符串中空格替换(发现钉钉bug 解决)Python 字符串中空格替换(发现钉钉bug 解决)Python 字符串中空格替换(发现钉钉bug 解决)钉钉机器人之前版本url都可以空格转译,突然一个版本不行了。索性直接把字符串的空全部替换转译符号%20str="http://10.191.221.9:8020/report/hcbs7.9.0.020211021121233/Hcb_ios_Auto_UI_Test Report_shipper7.9.0.02021-10-21 11:

2021-10-22 15:07:25 802

原创 Python 循环依赖(循环引用)问题处理。报错:Hint: make sure your test modules/packages have valid Python names.

循环引用报错:Hint: make sure your test modules/packages have valid Python names.看见上面这个报错,那就是你循环引用了。找出重复引用去掉就行。

2021-10-21 12:04:19 4345

原创 jenkins通过git拉取大项目出现拉取失败的情况Error fetching remote repo ‘origin’

遇见上线这个报错:有几个方向需要排查:1.检查磁盘空间是否充足。du -sh 查看当前目录大小df -hl 查看当前系统磁盘空间第一列Filesystem,磁盘分区第二列Size,磁盘分区的大小第三列Used,已使用的空间第四列Avail,可用的空间第五列Use%,已使用的百分比第六列Mounted on,挂载点2.git sshkey 是否正确这个网上很多3.检查git clone 手动敲命令能否下载成功这个就是自己敲一下4.检查git 配置的安装路径这个linxu 命令

2021-09-27 14:13:49 1960

原创 测试理论基础篇~有它一篇就够了!

一、软件测试理论:1.针对测试理论,那就是测试方法的指引:那么测试方法有哪些:黑盒测试:主要是针对程序代码所展现给用户使用的功能。白盒测试:主要针对程序代码逻辑。灰盒测试:关注输出对于输入的正确性;同事也关注内部表现。黑盒测试方法:等价类划分法、边界值分析法、决策表法、因果图法、场景法、正交实验法、错误推测法、状态转换图法、大纲法(需求大纲)。白盒测试方法:逻辑覆盖法、基本路径法、程序插装。黑盒测试与倍和测试的区别?黑盒测试针对功能,白盒针对结构;黑盒从用户角度触发,白盒是对程序内部的

2021-09-27 13:59:56 8424 2

原创 Mac Chrome浏览器取消自动升级(最新版)

https://www.cnblogs.com/hightech/p/12940227.html

2021-06-17 16:38:16 1125

原创 Spring中的InitializingBean接口的使用

InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候都会执行该方法。测试,如下:复制代码import org.springframework.beans.factory.InitializingBean;public class TestInitializingBean implements InitializingBean{@Overridepublic void afterPrope

2021-06-15 18:51:22 93

原创 java httpclient通过RequestConfig设置http请求响应时间

调用HTTP接口时,设置请求超时时间,通过RequestConfig设置。查看源码,// -1:永不超时private int connectionRequestTimeout = -1;private int connectTimeout = -1;private int socketTimeout = -1;Builder(org.apache.http.client.config.RequestConfig.Builder)是RequestConfig(org.apache.http.c

2021-06-04 11:20:28 3040

转载 Python单元测试详解

https://blog.csdn.net/Tencent_TEG/article/details/115713186?spm=1000.2115.3001.4128

2021-04-22 14:09:53 82

原创 linux 磁盘清理

有时候,服务突然挂了,再次启动却启动不了。一看,原来是磁盘空间被占满啦,那么,怎么清理呢。介绍如下:df -h ,这个命令用于查看服务器空间,运行后的效果图如下:可以看到,还剩余8G可用。du -h --max-depth=1,这个命令用于查看当前目录,哪个文件占用最大,运行效果如下:可以看到,iov那个目录占用的空间比较大,20G。除此之外,du -sh *,这个命令也用于查看当前目录下各文件及文件夹占用大小,运行效果如下:可以看到,iov那个目录占用的空间比较大,12G。进入iov目录,反

2021-03-11 10:19:27 122

转载 kafka java标准操作

kafka java标准操作https://blog.csdn.net/sdut406/article/details/103230253?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearn

2020-08-22 10:35:17 113

原创 git 创建库

git config --global user.name “suzhiyu”git config --global user.email “zhiyu.su@amh-group.com”Create a new repositorygit clone git@code.amh-group.com:middleware/middlewareTest/mid-kafka-consumer-test-service.gitcd mid-kafka-consumer-test-servicetouch

2020-08-18 09:43:19 134

原创 02_java语言运行机制-笔记

java语言运行机制: java 语言 是既有编译(不彻底的编译,编译成字节码文件)又有解释(每次运行是,将字节码翻译 好处呢个对应平台的机器指令)的语言。所以java 性能很好,跨平台好。【面试题】jvm原理是什么概括性回答:java 源程序编译之后生成的字节码文件(平台无关的),不同平台上的jvm 是不同的,不同平台的jvm 负责将字节码文件解释对应平台的机器指令,这样过程即可实现java程序的跨平台。jvm 原理知识点:累加载机制,反射。内存管理, gc。jvm 代码极细...

2020-07-23 16:19:29 107

转载 unitest 源码分析

https://blog.csdn.net/dacxu/article/details/19356673

2020-07-15 11:36:50 130

转载 http的长连接和短连接(史上最通俗!)

转:jianshu.com/p/3fc3646fad801.以前的误解很久之前就听说过长连接的说法,而且还知道HTTP1.0协议不支持长连接,从HTTP1.1协议以后,连接默认都是长连接。但终究觉得对于长连接一直懵懵懂懂的,有种抓不到关键点的感觉。今天通过一番研究,终于明白了这其中的奥秘。而之前,也看过长连接相关的内容,但一直都是云里雾里的。这次之所以能在这么短的时间里搞清楚,和自己技术的沉淀密不可分。因此,这里借着这个机会,再次强调一下,千万不要试图去研究你研究了很久都整不明白的东西,或许是你的层次

2020-06-16 11:28:22 476

原创 ubuntu使用crontab

ubuntu使用crontabcrond服务通常被放在/etc/init.d/crond , 这样就可以在系统启动后自动启动crond服务。linux中的用户使用crontab命令来配置cron任务.crontab在/etc目录下面存在cron.d,cron.daily,cron.weekly,cron.monthly,cron.hourly五个目录和crontab文件。cron.d是系统自动定期需要做的任务,但是又不是按小时,按天,按星期,按月来执行的,那么就放在这个目录下面。如果是按小时,按天

2020-06-06 11:37:14 517 2

原创 shell 脚本时间差计算

starttime=date +'%Y-%m-%d %H:%M:%S'#执行程序endtime=date +'%Y-%m-%d %H:%M:%S'start_seconds=(date−−date="(date --date="(date−−date="starttime" +%s);end_seconds=(date−−date="(date --date="(date−−date="endtime" +%s);echo "本次运行时间: "$((end_seconds-start_second

2020-06-05 14:05:50 806

原创 python FTP详解

使用python操作FTP上传和下载函数释义Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件,函数列举如下ftp登陆连接from ftplib import FTP #加载ftp模块ftp=FTP() #设置变量ftp.set_debuglevel(2) #打开调试级别2,显示详细信息ftp.connect(“IP”,“port”)

2020-06-03 10:26:15 1886

原创 01_编程语言运行机制-笔记

2020-03-05 12:32:26 132

原创 Shell命令行之直接安装ios ipa文件

1、查看连接的设备udid$ idevice_id -l2、获取设备上所有app的bundle id$ ideviceinstaller -l3、IPA安装到设备$ ideviceinstaller -i xx.ipa4、卸载app$ ideviceinstaller -u appBundle_id原文链接:https://blog.csdn.net/yxys01/article/...

2020-01-18 11:00:30 923

原创 执行ideviceinstaller -l报错Could not connect to lockdownd. Exiting.

执行命令ideviceinstaller -l报错:Could not connect to lockdownd. Exiting.尝试以下命令重新编译库1 brew uninstall -f libimobiledevice ideviceinstaller usbmuxd如果失败执行:brew uninstall --ignore-dependencies libimobil...

2020-01-18 10:58:04 524

原创 python ftplib模块

阅读目录函数释义例1:下载、上传文件例2:上传、下载文件/目录例3:异常处理ftp例子参考链接回到顶部函数释义Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件,函数列举如下1234567891011121314151617181920212223242526f...

2020-01-09 10:22:14 172

原创 使用python获取csv文本的某行或某列数据的实例

更新时间:2018年04月03日 09:26:33 作者:AllyLi0022 我要评论下面小编就为大家分享一篇使用python获取csv文本的某行或某列数据的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧站长用Python写了一个可以提取csv任一列的代码,欢迎使用。Github链接csv是Comma-Separated Values的缩写,是用文本文件形式...

2019-12-13 21:07:47 1021

原创 android 冷热启动时候收集

Android启动时间----获取APP 冷/热启动时间转载java2013liu 发布于2019-05-30 17:15:20 阅读数 430 收藏展开最近在研究Android APP性能测试。所以发现一些有趣的东西,在这里进行分享。我们先讲第一个内容,如何获取APP冷/热启动时间?为什么要做这个测试,道理其实很简单,如果启动APP特别耗时的话,用户反馈百分之99不好。所以在这里我们可以...

2019-12-13 11:26:42 236

原创 app ui ios airtest +python 环境搭建

Android端Ui 自动化环境搭建一,安装JDK、SDK二,添加环境变量Widows:1.系统变量→新建 JAVA_HOME 变量E:\Java\jdk1.7.0 jdk安装目录2.系统变量→寻找 Path 变量→编辑在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;添加SDK路径下的tools文件夹与platform_tools文件夹3...

2019-12-10 17:14:16 585

原创 uiautomator API

本文主要介绍如下内容,一, UiAutomator是什么鬼?二,Python-UiAutomator又是什么鬼?三, Python-UiAutomator API介绍四,重要查看工具:UiAutomatorViewer五,Python编辑器推荐:Pycharm让我们怀着一颗好奇的心,逐个看看我们刚刚列出的以上几条吧。一, UiAutomator是什么鬼?UiAutomator是go...

2019-12-10 17:06:19 527

原创 linux下查看系统配置命令

总核心数=181=8 跟显示的一样https://www.cnblogs.com/alwu007/p/6024631.html

2019-10-16 15:19:14 148

原创 springboot中get post put delete 请求

https://blog.csdn.net/xcc_2269861428/article/details/80432765

2019-10-15 15:10:00 272

转载 python +android +uiautomator test 方法

https://blog.csdn.net/hejunw/article/details/54693993

2019-10-14 15:41:01 107

转载 Spring Boot【快速入门】

https://www.cnblogs.com/wmyskxz/p/9010832.html

2019-10-14 15:25:03 92

原创 mac 下安装jmeter

https://www.jianshu.com/p/bce9077d883chttps://www.cnblogs.com/MTXue/p/10618174.html

2019-09-18 14:57:59 128

原创 mac 环境下nginx tomcat 搭建

1.用普通用户安装,上面用root 用户安装系统提示警告,权限太大了有危险。brew 搜索软件brew search nginxbrew 安装软件brew install nginx安装完成!查看版本几个方便命令nginx -t不运行,而仅仅仅测试配置文件.nginx将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。重新加载nginxnginx -s r...

2019-07-18 17:09:57 373

转载 APP网络测试

一. APP网络测试要点二. 弱网测试什么样的网络属于弱网  低于2G速率的时候都属于弱网,3G也可划分为弱网,一般Wi-Fi不划入弱网测试范畴。如何进行弱网测试  1、SIM卡的网络切换 手机-设置-移动网络设置-网络类型选择   3G、4G卡都可以设置关闭3G/4G,只走2G网络。   2、具体弱网场景测试,常见场景包括:地铁/巴士、电...

2019-07-16 13:48:23 2123

转载 app专项测试模板

麦子金服财富Android APP专项测试报告前言设计用例,通过性能,稳定性和安全对麦子金服财富APP进行专项测试, 使用评分进行标准评估.选择京东金融和拍拍贷理财作为竞品对比, 为APP优化提供建议.用例设计和测试标准参照用户使用场景: 麦子金服的用户使用场景主要在前台使用和后台待机, 不存在后台使用场景, 所以设计如下专项测试用例2.1 安全性测试API接口数据使用ht...

2019-07-16 13:47:37 3633

原创 Nginx 浅谈吧

Nginx

2019-07-16 10:16:25 123

转载 app 安卓打印日志

https://www.cnblogs.com/greenmoontester/p/9878788.html

2019-07-12 11:30:58 1156

原创 linux 启动python 文件,指定文件输出请求日志

python文件启动python3 mockserver.py >flaskapp.log 2>&1 &

2019-05-09 10:27:01 485

appium-xcuitest-driver-12.2.zip

appium-xcuitest-driver-12.2.zip 这个插件 ios ui 必须用到 appium-xcuitest-driver-12.2.zip 这个插件 ios ui 必须用到

2019-12-10

jmeter脚本

一些自动化脚本,接口串联, 并发,幂等一些自动化脚本,接口串联, 并发,幂等

2019-04-15

Python测试驱动开发:使用Django、Selenium和JavaScript进行Web编程(第2版).pdf

本书从最基础的知识开始,讲解 Web 开发的整个流程,展示如何使用 Python 做测试驱动开 发。本书由三个部分组成。第一部分介绍了测试驱动开发和 Django 的基础知识,并在每个阶段进 行严格的单元测试。第二部分讨论了 Web 开发要素,探讨了 Web 开发过程中不可避免的问题,以 及如何通过测试解决这些问题。第三部分探讨了一些高级话题,如模拟技术、集成第三方认证系统、 Ajax、测试固件以及持续集成等。 第 2 版全部使用 Python 3,并针对新版 Django 全面升级,介绍了由外而内的测试驱动开发流程。 本书适合 Web 开发人员阅读。 ......................................................................................................................................................... xv 和 ................................................................................................................xxi ...........................................................................................................................................xxviii ......................................................................................................................................................xxix 第 1 使用 测试 安 Django......................................................................................2 1.1 遵从测试山羊的教诲,没有测试什么也别做.........................................................................2 1.2 让Django运行起来 ..................................................................................................................... 4 1.3 创建Git仓库................................................................................................................................6 第 2 使用 unittest 测试................................................................................10 2.1 使用功能测试驱动开发一个最简可用的应用.......................................................................10 2.2 Python标准库中的unittest模块 ............................................................................................ 12 2.3 提交...........................................................................................................................................14 第 3 使用 测试测试 ......................................................................................16 3.1 第一个Django应用,第一个单元测试 ................................................................................... 16 3.2 单元测试及其与功能测试的区别...........................................................................................17 3.3 Django中的单元测试 ............................................................................................................... 18 3.4 Django中的MVC、URL和视图函数 ...................................................................................... 19 3.5 终于可以编写一些应用代码了...............................................................................................20 3.6 urls.py ........................................................................................................................................ 22 3.7 为视图编写单元测试...............................................................................................................23 目录 图灵社区会员 JeremyTowne(1747552250@qq.com) 专享 尊重版权 v 第 4 测试( ) ...................................................................................................28 4.1 编程就像从井里打水...............................................................................................................28 4.2 使用Selenium测试用户交互....................................................................................................30 4.3 遵守“不测试常量”规则,使用模板解决这个问题...........................................................32 4.3.1 使用模板重构 .............................................................................................................. 33 4.3.2 Django测试客户端....................................................................................................... 35 4.4 关于重构...................................................................................................................................37 4.5 接着修改首页...........................................................................................................................38 4.6 总结:TDD流程....................................................................................................................... 39 第 5 用 :测试 .......................................................................................... 42 5.1 编写表单,发送POST请求 ..................................................................................................... 42 5.2 在服务器中处理POST请求 ..................................................................................................... 45 5.3 把Python变量传入模板中渲染................................................................................................ 46 5.4 事不过三,三则重构...............................................................................................................50 5.5 Django ORM和第一个模型.....................................................................................................51 5.5.1 第一个数据库迁移 ...................................................................................................... 53 5.5.2 测试向前走得挺远 ...................................................................................................... 53 5.5.3 添加新字段就要创建新迁移 ...................................................................................... 54 5.6 把POST请求中的数据存入数据库 ......................................................................................... 55 5.7 处理完POST请求后重定向 ..................................................................................................... 57 5.8 在模板中渲染待办事项...........................................................................................................59 5.9 使用迁移创建生产数据库.......................................................................................................61 5.10 回顾.........................................................................................................................................64 第 6 进 测试: ...........................................................66 6.1 确保功能测试之间相互隔离...................................................................................................66 6.2 升级Selenium和Geckodriver .................................................................................................... 70 6.3 隐式等待、显式等待和含糊的time.sleep............................................................................70 第 7 ..............................................................................................................................75 7.1 必要时做少量的设计...............................................................................................................75 7.1.1 不要预先做大量设计 .................................................................................................. 75 7.1.2 YAGNI .......................................................................................................................... 76 7.1.3 REST(式)................................................................................................................. 76 7.2 使用TDD实现新设计............................................................................................................... 77 7.3 确保出现回归测试...................................................................................................................78 7.4 逐步迭代,实现新设计...........................................................................................................80 7.5 自成一体的第一步:新的URL ............................................................................................... 81 7.5.1 一个新URL ..................................................................................................................82 vi 图灵社区会员 JeremyTowne(1747552250@qq.com) 专享 尊重版权 7.5.2 一个新视图函数 .......................................................................................................... 82 7.6 变绿了吗?该重构了...............................................................................................................84 7.7 再迈一小步:一个新模板,用于查看清单...........................................................................84 7.8 第三小步:用于添加待办事项的URL ................................................................................... 86 7.8.1 用来测试新建清单的测试类 ...................................................................................... 87 7.8.2 用于新建清单的URL和视图 ...................................................................................... 88 7.8.3 删除当前多余的代码和测试 ...................................................................................... 89 7.8.4 出现回归!让表单指向刚添加的新URL ..................................................................89 7.9 下定决心,调整模型...............................................................................................................90 7.9.1 外键关系 ...................................................................................................................... 92 7.9.2 根据新模型定义调整其他代码 .................................................................................. 93 7.10 每个列表都应该有自己的URL ............................................................................................. 95 7.10.1 捕获URL中的参数................................................................................................... 96 7.10.2 按照新设计调整new_list视图 ............................................................................... 97 7.11 功能测试又检测到回归.........................................................................................................98 7.12 还需要一个视图,把待办事项加入现有清单 .......................................................................... 99 7.12.1 小心霸道的正则表达式........................................................................................... 99 7.12.2 最后一个新URL..................................................................................................... 100 7.12.3 最后一个新视图..................................................................................................... 101 7.12.4 直接测试响应上下文对象..................................................................................... 102 7.13 使用URL引入做最后一次重构...........................................................................................103 第 8 : 、 测试 ......................................................................108 8.1 如何在功能测试中测试布局和样式.....................................................................................108 8.2 使用CSS框架美化网站..........................................................................................................111 8.3 Django模板继承 ..................................................................................................................... 112 8.4 集成Bootstrap .........................................................................................................................114 8.5 Django中的静态文件 ............................................................................................................. 115 8.6 使用Bootstrap中的组件改进网站外观 ................................................................................. 117 8.6.1 超大文本块 ................................................................................................................ 118 8.6.2 大型输入框 ................................................................................................................ 118 8.6.3 样式化表格 ................................................................................................................ 118 8.7 使用自己编写的CSS..............................................................................................................118 8.8 补遗:collectstatic命令和其他静态目录........................................................................120 8.9 没谈到的话题.........................................................................................................................122 vii 第 9 使用 测试 .................................................................................................123 9.1 TDD以及部署的危险区域..................................................................................................... 124 9.2 一如既往,先写测试.............................................................................................................125 9.3 注册域名.................................................................................................................................127 9.4 手动配置托管网站的服务器.................................................................................................127 9.4.1 选择在哪里托管网站 ................................................................................................ 127 9.4.2 搭建服务器 ................................................................................................................ 128 9.4.3 用户账户、SSH和权限 ............................................................................................. 128 9.4.4 安装Nginx ..................................................................................................................128 9.4.5 安装Python 3.6...........................................................................................................129 9.4.6 解析过渡环境和线上环境所用的域名 .................................................................... 130 9.4.7 使用功能测试确认域名可用而且Nginx正在运行.................................................................130 9.5 手动部署代码.........................................................................................................................130 9.5.1 调整数据库的位置 .................................................................................................... 131 9.5.2 手动创建虚拟环境,使用requirements.txt ..............................................................133 9.5.3 简单配置Nginx ..........................................................................................................134 9.5.4 使用迁移创建数据库 ................................................................................................ 136 9.6 手动部署大功告成.................................................................................................................137 第 10 ......................................................................................139 10.1 换用Gunicorn ........................................................................................................................ 139 10.2 让Nginx伺服静态文件.........................................................................................................140 10.3 换用Unix套接字...................................................................................................................141 10.4 把DEBUG设为False,设置ALLOWED_HOSTS............................................................................ 142 10.5 使用Systemd确保引导时启动Gunicorn .............................................................................. 143 10.6 考虑自动化...........................................................................................................................144 10.7 保存进度...............................................................................................................................147 第 11 使用 Fabric 动 ..................................................................................................148 11.1 分析一个Fabric部署脚本..................................................................................................... 149 11.1.1 分析一个Fabric部署脚本 ...................................................................................... 149 11.1.2 使用Git拉取源码.................................................................................................... 150 11.1.3 更新settings.py .......................................................................................................151 11.1.4 更新虚拟环境......................................................................................................... 151 11.1.5 需要时迁移数据库................................................................................................. 152 11.2 试用部署脚本.......................................................................................................................152 11.2.1 部署到线上服务器................................................................................................. 154 11.2.2 使用sed配置Nginx和Gunicorn .............................................................................. 155 11.3 使用Git标签标注发布状态..................................................................................................157 11.4 延伸阅读...............................................................................................................................157 viii 第 12 和测试 ......................................................................................159 12.1 针对验证的功能测试:避免提交空待办事项 ........................................................................ 159 12.1.1 跳过测试................................................................................................................. 160 12.1.2 把功能测试分拆到多个文件中............................................................................. 161 12.1.3 运行单个测试文件................................................................................................. 163 12.2 功能测试新工具:通用显式等待辅助方法.......................................................................164 12.3 补完功能测试.......................................................................................................................167 12.4 重构单元测试,分拆成多个文件.......................................................................................168 第 13 ................................................................................................................171 13.1 模型层验证...........................................................................................................................172 13.1.1 self.assertRaises上下文管理器........................................................................172 13.1.2 Django怪异的表现:保存时不验证数据.............................................................173 13.2 在视图中显示模型验证错误...............................................................................................173 13.3 Django模式:在渲染表单的视图中处理POST请求 ......................................................... 177 13.3.1 重构:把new_item实现的功能移到view_list中................................................178 13.3.2 在view_list视图中执行模型验证 ....................................................................... 180 13.4 重构:去除硬编码的URL ................................................................................................... 182 13.4.1 模板标签{% url %} ...............................................................................................182 13.4.2 重定向时使用get_absolute_url..........................................................................183 第 14 .....................................................................................................................186 14.1 把验证逻辑移到表单中.......................................................................................................186 14.1.1 使用单元测试探索表单API .................................................................................. 187 14.1.2 换用Django中的ModelForm类 ............................................................................... 188 14.1.3 测试和定制表单验证............................................................................................. 189 14.2 在视图中使用这个表单.......................................................................................................191 14.2.1 在处理GET请求的视图中使用这个表单.............................................................191 14.2.2 大量查找和替换..................................................................................................... 192 14.3 在处理POST请求的视图中使用这个表单 ......................................................................... 194 14.3.1 修改new_list视图的单元测试 ............................................................................. 195 14.3.2 在视图中使用这个表单......................................................................................... 196 14.3.3 使用这个表单在模板中显示错误消息................................................................. 196 14.4 在其他视图中使用这个表单...............................................................................................197 14.4.1 定义辅助方法,简化测试..................................................................................... 197 14.4.2 意想不到的好处:HTML5自带的客户端验证 ................................................... 199 14.5 值得鼓励...............................................................................................................................201 14.6 这难道不是浪费时间吗.......................................................................................................201 14.7 使用表单自带的save方法 ................................................................................................... 202 ix 图灵社区会员 JeremyTowne(1747552250@qq.com) 专享 尊重版权 第 15 ......................................................................................................................... 205 15.1 针对重复待办事项的功能测试...........................................................................................205 15.1.1 在模型层禁止重复................................................................................................. 206 15.1.2 题外话:查询集合排序和字符串表示形式......................................................... 208 15.1.3 重写旧模型测试..................................................................................................... 210 15.1.4 保存时确实会显示完整性错误............................................................................. 211 15.2 在视图层试验待办事项重复验证.......................................................................................212 15.3 处理唯一性验证的复杂表单...............................................................................................213 15.4 在清单视图中使用ExistingListItemForm ........................................................................215 15.5 小结:目前所学的Django测试知识 ................................................................................... 217 第 16 试 JavaScript ............................................................................................................ 219 16.1 从功能测试开始...................................................................................................................219 16.2 安装一个基本的JavaScript测试运行程序 .......................................................................... 221 16.3 使用jQuery和<div>固件元素 .............................................................................................. 223 16.4 为想要实现的功能编写JavaScript单元测试 ....................................................................225 16.5 固件、执行顺序和全局状态:JavaScript测试的重大挑战 .............................................. 227 16.5.1 使用console.log打印调试信息 ........................................................................... 227 16.5.2 使用初始化函数精确控制执行时间..................................................................... 229 16.6 经验做法:onload样板代码和命名空间 ........................................................................... 230 16.7 JavaScript测试在TDD循环中的位置 .................................................................................. 232 16.8 一些缺憾...............................................................................................................................232 第 17 .....................................................................................................................234 17.1 部署到过渡服务器...............................................................................................................234 17.2 部署到线上服务器...............................................................................................................235 17.3 如果看到数据库错误该怎么办...........................................................................................235 17.4 总结:为这次新发布打上Git标签......................................................................................235 第 18 用 、 ....................................................................238 18.1 无密码验证...........................................................................................................................238 18.2 探索性编程(又名“探究”)...........................................................................................239 18.2.1 为此次探究新建一个分支..................................................................................... 239 18.2.2 前端登录UI ............................................................................................................240 18.2.3 从Django中发出邮件.............................................................................................240 18.2.4 使用环境变量,避免源码中出现机密信息......................................................... 242 18.2.5 在数据库中存储令牌............................................................................................. 243 18.2.6 自定义身份验证模型............................................................................................. 243 18.2.7 结束自定义Django身份验证功能.........................................................................244 x 18.3 去掉探究代码.......................................................................................................................248 18.4 一个极简的自定义用户模型...............................................................................................251 18.5 令牌模型:把电子邮件地址与唯一的ID关联起来........................................................... 254 第 19 使用 测试 ........................................................................257 19.1 开始之前布好基本管道.......................................................................................................257 19.2 自己动手模拟(打猴子补丁)...........................................................................................258 19.3 Python的模拟库.................................................................................................................... 261 19.3.1 使用unittest.patch.............................................................................................. 261 19.3.2 让测试向前迈一小步............................................................................................. 263 19.3.3 测试Django消息框架.............................................................................................263 19.3.4 在HTML中添加消息 ............................................................................................. 265 19.3.5 构建登录URL......................................................................................................... 266 19.3.6 确认给用户发送了带有令牌的链接..................................................................... 267 19.4 去除自定义的身份验证后端中的探究代码.......................................................................269 19.4.1 一个if语句需要一个测试..................................................................................... 269 19.4.2 get_user方法 ......................................................................................................... 272 19.4.3 在登录视图中使用自定义的验证后端................................................................. 273 19.5 使用驭件的另一个原因:减少重复...................................................................................274 19.5.1 使用驭件的返回值................................................................................................. 277 19.5.2 在类一级上打补丁................................................................................................. 278 19.6 关键时刻:功能测试能通过吗...........................................................................................279 19.7 理论上正常,那么实际呢...................................................................................................281 19.8 完善功能测试,测试退出功能...........................................................................................283 第 20 测试 和 .............................................................................285 20.1 事先创建好会话,跳过登录过程.......................................................................................285 20.2 显式等待辅助方法最终版:wait装饰器 ........................................................................... 290 第 21 试 .......................................................................................................293 21.1 实践是检验真理的唯一标准:在过渡服务器中捕获最后的问题.................................... 293 21.2 在服务器上通过环境变量设定机密信息...........................................................................295 21.3 调整功能测试,以便通过POP3测试真实的电子邮件...................................................... 296 21.4 在过渡服务器中管理测试数据库.......................................................................................299 21.4.1 创建会话的Django管理命令.................................................................................300 21.4.2 让功能测试在服务器上运行管理命令................................................................. 301 21.4.3 直接在Python代码中使用Fabric ........................................................................... 302 21.4.4 回顾:在本地服务器和过渡服务器中创建会话的方式..................................... 303 21.5 集成日志相关的代码...........................................................................................................304 21.6 小结.......................................................................................................................................305 xi 图灵社区会员 JeremyTowne(1747552250@qq.com) 专享 尊重版权 第 22 “My Lists” : TDD ........................................................... 306 22.1 对立技术:“由内而外”...................................................................................................306 22.2 为什么选择使用“由外而内”...........................................................................................307 22.3 “My Lists”页面的功能测试.............................................................................................307 22.4 外层:表现层和模板...........................................................................................................309 22.5 下移一层到视图函数(控制器).......................................................................................309 22.6 使用由外而内技术,再让一个测试通过...........................................................................310 22.6.1 快速重组模板的继承层级..................................................................................... 311 22.6.2 使用模板设计API .................................................................................................. 311 22.6.3 移到下一层:视图向模板中传入什么................................................................. 313 22.7 视图层的下一个需求:新建清单时应该记录属主...............................................................313 22.8 下移到模型层.......................................................................................................................315 第 23 测试 和“ 测试 ”...............................................................................319 23.1 重温抉择时刻:视图层依赖于尚未编写的模型代码.......................................................319 23.2 首先尝试使用驭件实现隔离...............................................................................................320 23.3 倾听测试的心声:丑陋的测试表明需要重构 ........................................................................ 323 23.4 以完全隔离的方式重写视图测试.......................................................................................323 23.4.1 为了新测试的健全性,保留之前的整合测试组件............................................. 324 23.4.2 完全隔离的新测试组件......................................................................................... 324 23.4.3 站在协作者的角度思考问题................................................................................. 324 23.5 下移到表单层.......................................................................................................................329 23.6 下移到模型层.......................................................................................................................332 23.7 关键时刻,以及使用模拟技术的风险...............................................................................335 23.8 把层与层之间的交互当作“合约”...................................................................................336 23.8.1 找出隐形合约......................................................................................................... 337 23.8.2 修正由于疏忽导致的问题..................................................................................... 338 23.9 还缺一个测试.......................................................................................................................339 23.10 清理:保留哪些整合测试.................................................................................................340 23.10.1 删除表单层多余的代码..................................................................................... 340 23.10.2 删除以前实现的视图......................................................................................... 341 23.10.3 删除视图层多余的代码..................................................................................... 342 23.11 总结:什么时候编写隔离测试,什么时候编写整合测试 ........................................... 343 23.11.1 以复杂度为准则.................................................................................................344 23.11.2 两种测试都要写吗.............................................................................................344 23.11.3 继续前行.............................................................................................................344 第 24 ......................................................................................................................... 346 24.1 安装Jenkins ........................................................................................................................... 346 24.2 配置Jenkins ........................................................................................................................... 347 xii 图灵社区会员 JeremyTowne(1747552250@qq.com) 专享 尊重版权 24.2.1 首次解锁................................................................................................................. 348 24.2.2 现在建议安装的插件............................................................................................. 348 24.2.3 配置管理员用户..................................................................................................... 348 24.2.4 添加插件................................................................................................................. 350 24.2.5 告诉Jenkins到哪里寻找Python 3和Xvfb..............................................................350 24.2.6 设置HTTPS ............................................................................................................351 24.3 设置项目...............................................................................................................................351 24.4 第一次构建...........................................................................................................................352 24.5 设置虚拟显示器,让功能测试能在无界面的环境中运行................................................ 354 24.6 截图.......................................................................................................................................356 24.7 如有疑问,增加超时试试...................................................................................................359 24.8 使用PhantomJS运行QUnit JavaScript测试.......................................................................359 24.8.1 安装node ................................................................................................................. 359 24.8.2 在Jenkins中添加构建步骤..................................................................................... 361 24.9 CI服务器能完成的其他操作...............................................................................................362 第 25 、 ...............................................................363 25.1 有多个用户以及使用addCleanup的功能测试.................................................................... 363 25.2 页面模式...............................................................................................................................365 25.3 扩展功能测试测试第二个用户和“My Lists”页面 ........................................................... 367 25.4 留给读者的练习...................................................................................................................368 第 26 测试 行 和 ........................................................................371 26.1 正题:单元测试除了运行速度超快之外还有其他优势.................................................... 372 26.1.1 测试运行得越快,开发速度越快......................................................................... 372 26.1.2 神赐的心流状态..................................................................................................... 372 26.1.3 经常不想运行速度慢的测试,导致代码变坏..................................................... 373 26.1.4 现在还行,不过随着时间推移,整合测试会变得越来越慢............................. 373 26.1.5 别只听我一个人说................................................................................................. 373 26.1.6 单元测试能驱使我们实现好的设计..................................................................... 373 26.2 纯粹的单元测试有什么问题...............................................................................................373 26.2.1 隔离的测试难读也难写......................................................................................... 373 26.2.2 隔离测试不会自动测试集成情况......................................................................... 374 26.2.3 单元测试几乎不能捕获意料之外的问题............................................................. 374 26.2.4 使用驭件的测试可能和实现方式联系紧密......................................................... 374 26.2.5 这些问题都可以解决............................................................................................. 374 26.3 合题:我们到底想从测试中得到什么...............................................................................374 26.3.1 正确性..................................................................................................................... 374 26.3.2 简洁可维护的代码................................................................................................. 375 26.3.3 高效的工作流程..................................................................................................... 375 26.3.4 根据所需的优势评估测试..................................................................................... 375 xiii 26.4 架构方案...............................................................................................................................375 26.4.1 端口和适配器(或六边形、简洁)架构............................................................. 376 26.4.2 函数式核心,命令式外壳..................................................................................... 377 26.5 小结.......................................................................................................................................377 测试 ........................................................................................................................ 379 A B C D E F G H I PythonAnywhere ............................................................................................................ 381 Django ................................................................................................... 385 使用 Ansible .............................................................................................. 394 测试 ............................................................................................................... 398 行 驱动开发 ................................................................................................................... 403 REST API:JSON、Ajax 和 JavaScript ...........................416 Django-Rest-Framework ............................................................................................. 433 ................................................................................................................................. 443 ................................................................................................................... 447 ............................................................................................................................ 451 J ..............................................................................................................................................453 ..............................................................................................................................................454 ..............................................................................................................................................454

2019-03-26

mac 内存优化神器 Dr.Cleaner

mac 内存优化神器 Dr.Cleaner

2018-12-18

python 入门到精通 下载视频

Python 教学 入门到精通 60课

2018-09-21

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

TA关注的人

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