目录
一、robot framework
二、JMeter
三、HttpRunner
四、gauge
五、Unittest+Request+HTMLRunner
公司计划系统的开展接口自动化测试,需要我这边调研一下主流的接口测试框架给后端测试(主要测试接口)的同事介绍一下每个框架的特定和使用方式。后端同事根据他们接口的特点提出一下需求,看哪个框架更适合我们。
需求
1、接口编写方便。 2、方便调试接口。 3、支持数据初始化。 4、生成测试报告。 5、支持参数化。
一、robot framework
优点
关键字驱动,自定义用户关键字。
支持测试日志和报告生成。
支持系统关键字开发,可扩展性好。
支持数据库操作。
缺点
接口测试用例写起来不简洁。
需要掌握特定语法。
*** Settings ***
Library RequestsLibrary
Library Collections
*** Test Cases ***
test_get_event_list # 查询发布会(GET请求)
${payload}= Create Dictionary eid=1
Create Session event http://127.0.0.1:8000/api
${r}= Get Request event /get_event_list/ params=${payload}
Should Be Equal As Strings ${r.status_code} 200
log ${r.json()}
${dict} Set variable ${r.json()}
#断言结果
${msg} Get From Dictionary ${dict} message
Should Be Equal ${msg} success
${sta} Get From Dictionary ${dict} status
${status} Evaluate int(200)
Should Be Equal ${sta} ${status}
结果:不考虑,没人愿意这么写接口用例。
二、JMeter
优点
支持参数化
不需要写代码
缺点
创建接口用例效率不高。
不能生成查看每一个接口执行情况的测试报告。
总结:不考虑,接口编写不方便,最主要是不能生成测试报告,如果做接口性能的话可以考虑。
三、HttpRunner
优点:
基于YAML/JSON格式,专注于接口本身的编写。
接口编写简单
生成测试报告
接口录制功能。
缺点:
没有编辑器插件对语法校验,容易出错。
官方文档没有详细的说明。
扩展不方便。
[
{
"config": {
"name": "testcase description",
"variables": [],
"request": {
"base_url": "http://127.0.0.1:5000",
"headers": {
"User-Agent": "python-requests/2.18.4"
}
}
}
},
{
"test": {
"name": "test case name",
"request": {
"url": "/api/get-token",
"headers": {
"device_sn": "FwgRiO7CNA50DSU",
"user_agent": "iOS/10.3",
"os_platform": "ios",
"app_version": "2.8.6",
"Content-Type": "application/json"
},
"method": "POST",
"date": {"sign": "958a05393efef0ac7c0fb80a7eac45e24fd40c27"}
},
"validate": [
{"eq": ["status_code", 200]},
{"eq": ["headers.Content-Type", "application/json"]},
{"eq": ["content.success", true]},
{"eq": ["content.token", "baNLX1zhFYP11Seb"]}
]
}
}]
总结:可以考虑,至于接口数据的初始化可能需要单独处理。
四、gauge
BDD行为驱动测试框架。
优点:
行为文件与脚本文件分离,本质上实现了数据驱动。
功能强大灵活,本质上还用Python写接口用例。
自动生成测试报告。
VS Code有支持插件
缺点:
门槛略高,需要了解BDD的用法。
需要会markdworn语法
行为描述文件:
## test post request
* post "http://httpbin.org/post" interface
|key | status_code|
|------|-----------|
|value1|200 |
|value2|200 |
|value3|200 |
测试脚本:
……
@step("post interface ")
def test_get_request(url, table):
values = []
status_codes = []
for word in table.get_column_values_with_name("key"):
values.append(word)
for word in table.get_column_values_with_name("status_code"):
status_codes.append(word)
for i in range(len(values)):
r = requests.post(url, data={"key": values[i]})
result = r.json()
assert r.status_code == int(status_codes[i])
总结:推荐使用,BDD有一定门槛,看测试人员的学些能力和接受速度。
五、Unittest+Request+HTMLRunner
利用现有的框架和库自己定制。
优点:
足够灵活强大: 分层测试、数据驱动、测试报告,集成CI...
缺点:
有一定的学习成本
数据文件:
{
"test_case1": {
"key": "value1",
"status_code": 200
},
"test_case2": {
"key": "value2",
"status_code": 200
},
"test_case3": {
"key": "value3",
"status_code": 200
},
"test_case4": {
"key": "value4",
"status_code": 200
}}
测试用例:
import requests
import unittest
from ddt import ddt, file_data
@ddtclass InterfaceTest(unittest.TestCase):
def setUp(self):
self.url = "http://httpbin.org/post"
def tearDown(self):
print(self.result)
@file_data("./data/test_data_dict.json")
def test_post_request(self, key, status_code):
r = requests.post(self.url, data={"key": key})
self.result = r.json()
self.assertEqual(r.status_code, status_code)
总结:推荐使用,代码相对简单,功能足够灵活。
我花了两天时间整理这些框架,其实重点就是了解HttpRunner 和 gauge 。
yg
HttpRunner 没有编辑器插件,本身就是一个YAML/JSON配置文件,所以配置写错了,但只要是合法的YAML/JSON格式,也看不出来,只有运行的过后才知道。就像你用记事本写代码一样,只有运行了才知道代码有没有写错。
另外,扩展起来也不是特别方便,单独用python实现一些函数:在json文件中
```{"device_sn": "${gen_random_string(15)}"}```
以这样的方式引用```gen_random_string()``` 函数。
gauge我已经分享过两篇基础文章了,虽然用BDD拿来做接口理念不搭,但并不是不可以,唯一的缺点是用BDD来描述接口行为不合适,其他的都没毛病,可以参数化,断言写起来也简单,测试报告也漂亮,本质上还是用Python实现一些功能,所以非常灵活。
unittest + requests + HTMLTestRunner是我最熟悉的方案,几乎没什么短板。以前通过这种方案写过很多测试用例,这次把ddt加上似乎更完美了。
B站最牛的Python自动化测试框架全栈测试开发实战项目入门到精通,涨薪必备教程!!!
你可能感兴趣的:(自动化测试,软件测试,软件测试工程师,python,单元测试,开发语言)
「Python系列」Python random模块、hashlib模块
·零落·
Python入门到掌握 python 开发语言 random
文章目录一、Pythonrandom模块1.`random.random()`2.`random.uniform(a,b)`3.`random.randint(a,b)`4.`random.randrange(start,stop,step)`5.`random.choice(seq)`6.`random.shuffle(seq)`7.`random.sample(seq,k)`8.`random
python round函数_python中round函数如何使用
weixin_39823017
python round函数
round函数很简单,对浮点数进行近似取值,保留几位小数。比如>>>round(10.0/3,2)3.33>>>round(20/7)3第一个参数是一个浮点数,第二个参数是保留的小数位数,可选,如果不写的话默认保留到整数。这么简单的函数,能有什么坑呢?1、round的结果跟python版本有关我们来看看python2和python3中有什么不同:$pythonPython2.7.8(default
python中round的用法_python中如何使用round函数
weixin_39754831
python中round的用法
在python3中,round(1.0/2.0)得到的是1,而在python2中,round(1.0/2.0)得到的是0$pythonPython2.7.8(default,Jun182015,18:54:19)[GCC4.9.1]onlinux2Type"help","copyright","credits"or"license"formoreinformation.>>>round(0.5)1
python实现先来先服务_Python基础并发编程——进程
weixin_39568653
python实现先来先服务
一、进程的基础知识1、理论基础知识顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。PS:即使可以利用的cpu只有一个(早期的计算机确实如此),也能保证支持(伪)并发的能力。将一个单独的cpu变成多个虚拟的cpu(多道技术:时间多路复
python round函数用法
ncst
Python python
round()方法返回x的小数点四舍五入到n个数字。语法以下是round()方法的语法:round(x[,n])参数x–这是一个数值表达式n–这也是一个数值表达式返回值该方法返回x的小数点四舍五入到n个数字例子下面的例子显示了round()方法的使用print“round(80.23456,2):“,round(80.23456,2)print“round(100.000056,3):“,roun
Python Excel页眉页脚设置详解
nuclear2011
Python Excel python Excel页眉和页脚 Excel奇偶页不同页眉和页脚 Excel第一页不同页眉和页脚 插入图片到Excel页眉和页脚 添加页码到Excel表格
目录什么是Excel中的页眉和页脚?使用工具使用Python在Excel中插入页眉和页脚使用Python在Excel中为页眉和页脚添加图片使用Python在Excel中为奇偶页插入不同的页眉和页脚使用Python在Excel中为第一页插入不同的页眉和页脚本文介绍如何使用Python在Excel中设置和自定义页眉和页脚。内容包括插入基础页眉和页脚、在页眉和页脚中添加图片、为奇偶页设置不同的页眉和页脚
Python入门进阶:68 个 Python 内置函数详解
Ndk开发校长
程序员 python windows 开发语言
3.数学运算abs()返回绝对值divmode()返回商和余数round()四舍五入pow(a,b)求a的b次幂,如果有三个参数.则求完次幂后对第三个数取余sum()求和min()求最小值max()求最大值print(abs(-2))#绝对值:2print(divmod(20,3))#求商和余数:(6,2)print(round(4.50))#五舍六入:4print(round(4.51))#5p
使用Python中的random模块生成随机数
code_welike
python 开发语言 Python
随机数在计算机编程中经常被用到,可以用于模拟实验、生成随机数据等各种场景。Python提供了random模块,其中包含了生成随机数的函数和方法。本文将介绍random模块的基本用法,并提供一些示例代码。首先,我们需要导入random模块,可以使用以下代码实现:importrandom一旦导入了random模块,我们就可以使用其中的函数和方法来生成随机数了。下面是一些常用的函数和方法:random.
random(随机数)
MoRanzhi1203
python
random(随机数)Python的random库是用于生成随机数的标准库。它提供了各种功能,可以产生伪随机数、随机选择元素、打乱序列等。importrandom该模块实现了各种分布的伪随机数生成器。对于整数,从范围中有统一的选择。对于序列,存在随机元素的统一选择、用于生成列表的随机排列的函数、以及用于随机抽样而无需替换的函数。在实数轴上,有计算均匀、正态(高斯)、对数正态、负指数、伽马和贝塔分布
Python 内置函数 round() 详解
嘻嘻爱编码
Python从入门到放弃 1024程序员节 python 开发语言
在Python编程中,round()函数是一个非常实用的内置函数,用于对数字进行四舍五入。无论是在数据处理、财务计算还是科学计算中,round()函数都能帮助我们得到所需的精确值。本文将详细介绍round()函数的用法和注意事项。1.round()函数的基本语法round(number,ndigits=None)参数说明number:要四舍五入的数字,可以是整数或浮点数。ndigits:可选参数,
LeetCode刷题 | Day 2 最长严格递增或递减子列表(Longest Increasing or Decreasing SubList)
上坤
LeetCode刷题 leetcode 算法 最长递增子列表 动态规划 Python C++ dynamic programming
LeetCode刷题|Day2最长严格递增或递减子列表(LongestIncreasingDecreasingSubList)文章目录LeetCode刷题|Day2最长严格递增或递减子列表(LongestIncreasingDecreasingSubList)前言一、题目概述二、解题方法2.1动态规划思想2.1.1思路讲解2.1.2伪代码+逐步输出示例2.1.3Python代码如下2.1.4C++
python资本市场财务数据分析_Python对股票财务数据进行可视化分析
weixin_39834984
对股票财务数据进行分析是非常必要,但因股票数据量很大,单凭浏览网页或在软件客户端查看是非常浪费精力的一件事,通过Python进行网页数据提取,将财务数据图表化会更加直观。以下代码在Python3.6环境下通过:注:使用注意,将此代码保存为一个文本文件扩展名为.py,在这个文件同目录下建立二个子目录:数据-分析、数据-下载,也可以更改代码中的路径,否则运行时会报错。importmatplotlib.
Python虚拟环境介绍
weixin_34150224
python 操作系统
在使用Python语言的时候我们使用pip来安装第三方包,但是由于pip的特性,系统中只能安装每个包的一个版本。但是在实际项目开发中,不同项目可能需要第三方包的不同版本,Python的解决方案就是虚拟环境。顾名思义,虚拟环境就是虚拟出来的一个隔离的Python环境,每个项目都可以有自己的虚拟环境,用pip安装各自的第三方包,不同项目之间也不会存在冲突。创建虚拟环境需要一些工具,本文将会介绍这些工具
【面试常问之python】python中的面试常考知识点
欢喜躲在眉梢里-柚子
面试经验分享 servlet
目录1、list(列表)和tuple(元组)的区别?2、什么是pep8,pep8能说出几点?3、Python内存管理4、Python常用模块有哪些能不能说一下怎么使用用来干过什么?5.Python中的多进程和多线程都使用什么模块?6.Python的GIL是什么7.什么是协程8.Flask和django的区别9.项目相关流程虚拟环境requestsss对象使用模块10.深浅拷贝原理现象11.Pyth
python报错:No pyvenv.cfg file
云边的快乐猫
Bug大全解决 python 开发语言 python解释器空 切换python解释器 新建项目
目录一、遇到问题二、出现问题的原因三、解决步骤一、遇到问题新建python项目运行的时候发现了报错这个,之前运行或者给别人运行就没问题,排除了是代码报错,那就只有可能是环境问题了。这个翻译就是缺失这个文件,项目如下Nopyvenv.cfgfile项目还有这个.venv文件.venv文件:这个是创建这个项目时候选择的环境隔离,你这里添加的各种环境包只在这个项目生效,不影响其他项目二、出现问题的
Linux系统python虚拟环境及HanLP部署
段智华
在Linux系统中运行HanLP,要安装部署一个Python的虚拟环境,实现Python2与Python3的版本共存,Python虚拟环境与JavaJVM虚拟机的共存,HanLP是面向生产环境的多语种NLP工具包,HanLp的标记是一只蝴蝶,蝴蝶象征着蝴蝶效应、非线性与混沌理论——虽然微小,但足以改变世界!(《自然语言处理入门》图书作者何晗)Linuxopenssl、libssl-dev等模块安装
ollama把huggingface下载下来的模型转换为gguf
abments
人工智能 语言模型
说明ollama导入从huggingface下载下来的模型在ollama的说明文档中有详细的介绍,大家可以按照文档说明进行操作。importing-pytorch–safetensors。既然官方已经给出了明确的操作步骤,那么我写这篇博客的意义又是什么呢?主要有两个目的:1.我的操作可能更适合中国宝宝体质2.方便后期自己查看要求建议使用conda管理python环境建议使用linux或mac环境,
vscode 和 pycharm哪个更适合开发
挺住.
人工智能 经验分享 笔记
在选择Python开发环境时,VisualStudioCode(VSCode)和PyCharm是两个最受欢迎的选择。两者都有强大的功能,但它们的设计理念、用户体验和功能集有所不同。是对两者的详细比较,帮助你选择更适合Python开发的工具。1.概述VisualStudioCode(VSCode):由微软开发,是一个轻量级、开源的代码编辑器,支持多种编程语言。通过扩展插件,VSCode可以扩展为功能
venv 文件夹的作用和使用方法
张biubiu
python pycharm 编辑器
在代码库中发现的venv文件夹通常表示一个Python虚拟环境。这个文件夹用于管理该项目的依赖和环境设置,确保项目在独立的、隔离的环境中运行,避免与其他项目或系统全局的Python环境发生冲突。venv文件夹的作用:创建独立的环境:它包含了项目所需的Python解释器和库,而不会干扰到系统或其他项目中的环境。隔离依赖:项目中所有的包和库都被安装在venv目录中,不会影响到其他项目或全局环境。版本控
Anaconda 虚拟环境 和 Python 虚拟环境 主要的区别
张biubiu
python 开发语言
在PyCharm中配置Anaconda虚拟环境和Python虚拟环境主要的区别在于环境的管理方式和用途。下面我会分别解释这两种虚拟环境的特点,并说明它们的差异。1.Anaconda虚拟环境Anaconda是一个针对数据科学、机器学习等应用领域优化的Python发行版,它提供了Python、R和大量的科学计算和数据处理包(如NumPy、Pandas、SciPy、Matplotlib等)的集成,且方便
在 Python 中如何删除文本文件中的特定行
信息科技云课堂
python
目录:方法1:按照行号删除行方法2:通过匹配内容删除行方法3:删除包含特定字符串的行方法4:删除文件中最短的行在本文中,将介绍使用Python从文本文件中删除行的几种方法。由于Python没有提供删除文件中特定行的直接方法,因此有必要找到我们自己的方法。文中示例使用的文本文件“1.txt”内容如下:穿针引线无忧无虑无地自容学习三位一体原来如此落叶归根相见恨晚惊天动地滔滔不绝相濡以沫方法1:按照行号
在 Python 中连接字符串的 7 种方法
信息科技云课堂
python
目录:简单方法连接字符串使用“+”运算符连接字符串使用“+=”运算符连接字符串使用join()方法连接字符串使用%连接字符串使用format()方法连接字符串使用f-strings连接字符串Python提供了将一个或多个字符串连接在一起的多种方法。由于Python字符串是不可变的,因此字符串连接后总是会产生一个新字符串。简单方法连接字符串要连接两个或多个字符串,只需要将它们彼此相邻放置即可。s='
斯坦福吴恩达-深度学习和机器学习全套视频+课件!
Alexquyun
人工智能 机器学习 深度学习 python
这些课程专为已有一定基础(基本的编程知识,熟悉Python、对机器学习有基本了解),想要尝试进入人工智能领域的计算机专业人士准备。介绍显示:“深度学习是科技业最热门的技能之一,本课程将帮你掌握深度学习。”学生将可以学习到深度学习的基础,学会构建神经网络,并用在包括吴恩达本人在内的多位业界顶尖专家指导下创建自己的机器学习项目。DeepLearningSpecialization对卷积神经网络(CNN
Python从0到100(四十九):数据库设计及Django ORM使用
是Dream呀
python 数据库 django
前言:零基础学Python:Python从0到100最新最全教程。想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、计算机视觉、机器学习、神经网络以及人工智能相关知识,成为学习学习和学业的先行者!欢迎大家订阅专栏:零基础学Python:Python从0到100最新
python将自己的代码文件封装成库
没有名字233
python 开发语言
Python,封装相关视频讲解:python的or运算赋值用法用python编程Excel有没有用处?011_编程到底好玩在哪?查看python文件_输出py文件_cat_运行python文件_shel将Python代码文件封装成库的步骤1.创建项目目录结构首先,我们需要创建一个项目目录,用于存放我们的代码文件和库文件。可以按照以下结构创建:登录后复制my_library/├──my_module
DeepSeek-V3模型:软件测试智能化的新篇章与挑战
霍格沃兹测试开发学社测试人社区
测试开发 软件测试 人工智能
在这个技术日新月异的时代,人工智能(AI)的每一次革新都在悄然改变着我们的生活和工作方式。最近,DeepSeekAI公司推出的DeepSeek-V3模型,凭借其卓越的文本处理能力、高效的推理速度以及多任务处理能力,为软件测试行业带来了一场前所未有的智能化变革。今天,我们就来深入探讨一下DeepSeek-V3在软件测试中的应用以及它所面临的挑战。智能化测试的新篇章DeepSeek-V3模型在软件测试
python3D圣诞树
Chinese Red Guest
pygame python
importpygameimportmathfrompygame.localsimport*#初始化Pygamepygame.init()#设置屏幕尺寸和标题width,height=800,600screen=pygame.display.set_mode((width,height))pygame.display.set_caption('3D圣诞树')#设置颜色GREEN=(34,139,3
在python中如何使用protobuf
牛马猿。
python 开发语言
文章目录前言一、protobuf是什么?二、使用步骤1.确保已经安装好protoc2.编写.proto协议文件3.使用protoc命令生成Python代码4.在python中导入生成的模块前言文章将介绍在python中如何使用protobuf。一、protobuf是什么?protobuf是一种用于序列化结构数据的工具,实现数据的存储与交换,与编程语言和开发平台无关。。二、使用步骤1.确保已经安装好
基于python3.10的Django4.1项目安装启动(二)
weixin_40686234
前端 django bootstrap python html
创建模版---templates和引入静态文件,bootstrap一.创建模版---templates1.在url.py页面编辑路由path("home/",views.home),#用于创建一个templates首页模板2.在views.py页面建立视图映射defhome(request):#去app目录下新建templates目录再新建home.html文件returnrender(reque
python——格式化输出
pumpkin84514
python相关 python
Python提供了多种格式化输出的方法,常见的有以下几种:百分号(%)格式化str.format()方法f-string(格式化字符串字面量)模板字符串每种方法都有其独特的用法和适用场景。下面我们逐一详细讲解并举例说明。1.百分号(%)格式化这种方法类似于C语言中的printf格式,使用百分号(%)作为占位符。用法%s:字符串%d:整数%f:浮点数%%:百分号示例name="Alice"age=3
rust的指针作为函数返回值是直接传递,还是先销毁后创建?
wudixiaotie
返回值
这是我自己想到的问题,结果去知呼提问,还没等别人回答, 我自己就想到方法实验了。。
fn main() {
let mut a = 34;
println!("a's addr:{:p}", &a);
let p = &mut a;
println!("p's addr:{:p}", &a
java编程思想 -- 数据的初始化
百合不是茶
java 数据的初始化
1.使用构造器确保数据初始化
/*
*在ReckInitDemo类中创建Reck的对象
*/
public class ReckInitDemo {
public static void main(String[] args) {
//创建Reck对象
new Reck();
}
}
[航天与宇宙]为什么发射和回收航天器有档期
comsci
地球的大气层中有一个时空屏蔽层,这个层次会不定时的出现,如果该时空屏蔽层出现,那么将导致外层空间进入的任何物体被摧毁,而从地面发射到太空的飞船也将被摧毁...
所以,航天发射和飞船回收都需要等待这个时空屏蔽层消失之后,再进行
&
linux下批量替换文件内容
商人shang
linux 替换
1、网络上现成的资料
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`
linux sed 批量替换多个文件中的字符串
sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`
例如:替换/home下所有文件中的www.admi
网页在线天气预报
oloz
天气预报
网页在线调用天气预报
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transit
SpringMVC和Struts2比较
杨白白
springMVC
1. 入口
spring mvc的入口是servlet,而struts2是filter(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),这样就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了。
参见:http://blog.csdn.net/zs15932616453/article/details/8832343
2
refuse copy, lazy girl!
小桔子
copy
妹妹坐船头啊啊啊啊!都打算一点点琢磨呢。文字编辑也写了基本功能了。。今天查资料,结果查到了人家写得完完整整的。我清楚的认识到:
1.那是我自己觉得写不出的高度
2.如果直接拿来用,很快就能解决问题
3.然后就是抄咩~~
4.肿么可以这样子,都不想写了今儿个,留着作参考吧!拒绝大抄特抄,慢慢一点点写!
apache与php整合
aichenglong
php apache web
一 apache web服务器
1 apeche web服务器的安装
1)下载Apache web服务器
2)配置域名(如果需要使用要在DNS上注册)
3)测试安装访问http://localhost/验证是否安装成功
2 apache管理
1)service.msc进行图形化管理
2)命令管理,配
Maven常用内置变量
AILIKES
maven
Built-in properties
${basedir} represents the directory containing pom.xml
${version} equivalent to ${project.version} (deprecated: ${pom.version})
Pom/Project properties
Al
java的类和对象
百合不是茶
JAVA面向对象 类 对象
java中的类:
java是面向对象的语言,解决问题的核心就是将问题看成是一个类,使用类来解决
java使用 class 类名 来创建类 ,在Java中类名要求和构造方法,Java的文件名是一样的
创建一个A类:
class A{
}
java中的类:将某两个事物有联系的属性包装在一个类中,再通
JS控制页面输入框为只读
bijian1013
JavaScript
在WEB应用开发当中,增、删除、改、查功能必不可少,为了减少以后维护的工作量,我们一般都只做一份页面,通过传入的参数控制其是新增、修改或者查看。而修改时需将待修改的信息从后台取到并显示出来,实际上就是查看的过程,唯一的区别是修改时,页面上所有的信息能修改,而查看页面上的信息不能修改。因此完全可以将其合并,但通过前端JS将查看页面的所有信息控制为只读,在信息量非常大时,就比较麻烦。
AngularJS与服务器交互
bijian1013
JavaScript AngularJS $http
对于AJAX应用(使用XMLHttpRequests)来说,向服务器发起请求的传统方式是:获取一个XMLHttpRequest对象的引用、发起请求、读取响应、检查状态码,最后处理服务端的响应。整个过程示例如下:
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange
[Maven学习笔记八]Maven常用插件应用
bit1129
maven
常用插件及其用法位于:http://maven.apache.org/plugins/
1. Jetty server plugin
2. Dependency copy plugin
3. Surefire Test plugin
4. Uber jar plugin
1. Jetty Pl
【Hive六】Hive用户自定义函数(UDF)
bit1129
自定义函数
1. 什么是Hive UDF
Hive是基于Hadoop中的MapReduce,提供HQL查询的数据仓库。Hive是一个很开放的系统,很多内容都支持用户定制,包括:
文件格式:Text File,Sequence File
内存中的数据格式: Java Integer/String, Hadoop IntWritable/Text
用户提供的 map/reduce 脚本:不管什么
杀掉nginx进程后丢失nginx.pid,如何重新启动nginx
ronin47
nginx 重启 pid丢失
nginx进程被意外关闭,使用nginx -s reload重启时报如下错误:nginx: [error] open() “/var/run/nginx.pid” failed (2: No such file or directory)这是因为nginx进程被杀死后pid丢失了,下一次再开启nginx -s reload时无法启动解决办法:nginx -s reload 只是用来告诉运行中的ng
UI设计中我们为什么需要设计动效
brotherlamp
UI ui教程 ui视频 ui资料 ui自学
随着国际大品牌苹果和谷歌的引领,最近越来越多的国内公司开始关注动效设计了,越来越多的团队已经意识到动效在产品用户体验中的重要性了,更多的UI设计师们也开始投身动效设计领域。
但是说到底,我们到底为什么需要动效设计?或者说我们到底需要什么样的动效?做动效设计也有段时间了,于是尝试用一些案例,从产品本身出发来说说我所思考的动效设计。
一、加强体验舒适度
嗯,就是让用户更加爽更加爽的用你的产品。
Spring中JdbcDaoSupport的DataSource注入问题
bylijinnan
java spring
参考以下两篇文章:
http://www.mkyong.com/spring/spring-jdbctemplate-jdbcdaosupport-examples/
http://stackoverflow.com/questions/4762229/spring-ldap-invoking-setter-methods-in-beans-configuration
Sprin
数据库连接池的工作原理
chicony
数据库连接池
随着信息技术的高速发展与广泛应用,数据库技术在信息技术领域中的位置越来越重要,尤其是网络应用和电子商务的迅速发展,都需要数据库技术支持动 态Web站点的运行,而传统的开发模式是:首先在主程序(如Servlet、Beans)中建立数据库连接;然后进行SQL操作,对数据库中的对象进行查 询、修改和删除等操作;最后断开数据库连接。使用这种开发模式,对
java 关键字
CrazyMizzz
java
关键字是事先定义的,有特别意义的标识符,有时又叫保留字。对于保留字,用户只能按照系统规定的方式使用,不能自行定义。
Java中的关键字按功能主要可以分为以下几类:
(1)访问修饰符
public,private,protected
p
Hive中的排序语法
daizj
排序 hive order by DISTRIBUTE BY sort by
Hive中的排序语法 2014.06.22 ORDER BY
hive中的ORDER BY语句和关系数据库中的sql语法相似。他会对查询结果做全局排序,这意味着所有的数据会传送到一个Reduce任务上,这样会导致在大数量的情况下,花费大量时间。
与数据库中 ORDER BY 的区别在于在hive.mapred.mode = strict模式下,必须指定 limit 否则执行会报错。
单态设计模式
dcj3sjt126com
设计模式
单例模式(Singleton)用于为一个类生成一个唯一的对象。最常用的地方是数据库连接。 使用单例模式生成一个对象后,该对象可以被其它众多对象所使用。
<?phpclass Example{ // 保存类实例在此属性中 private static&
svn locked
dcj3sjt126com
Lock
post-commit hook failed (exit code 1) with output:
svn: E155004: Working copy 'D:\xx\xxx' locked
svn: E200031: sqlite: attempt to write a readonly database
svn: E200031: sqlite: attempt to write a
ARM寄存器学习
e200702084
数据结构 C++ c C# F#
无论是学习哪一种处理器,首先需要明确的就是这种处理器的寄存器以及工作模式。
ARM有37个寄存器,其中31个通用寄存器,6个状态寄存器。
1、不分组寄存器(R0-R7)
不分组也就是说说,在所有的处理器模式下指的都时同一物理寄存器。在异常中断造成处理器模式切换时,由于不同的处理器模式使用一个名字相同的物理寄存器,就是
常用编码资料
gengzg
编码
List<UserInfo> list=GetUserS.GetUserList(11);
String json=JSON.toJSONString(list);
HashMap<Object,Object> hs=new HashMap<Object, Object>();
for(int i=0;i<10;i++)
{
进程 vs. 线程
hongtoushizi
线程 linux 进程
我们介绍了多进程和多线程,这是实现多任务最常用的两种方式。现在,我们来讨论一下这两种方式的优缺点。
首先,要实现多任务,通常我们会设计Master-Worker模式,Master负责分配任务,Worker负责执行任务,因此,多任务环境下,通常是一个Master,多个Worker。
如果用多进程实现Master-Worker,主进程就是Master,其他进程就是Worker。
如果用多线程实现
Linux定时Job:crontab -e 与 /etc/crontab 的区别
Josh_Persistence
linux crontab
一、linux中的crotab中的指定的时间只有5个部分:* * * * *
分别表示:分钟,小时,日,月,星期,具体说来:
第一段 代表分钟 0—59
第二段 代表小时 0—23
第三段 代表日期 1—31
第四段 代表月份 1—12
第五段 代表星期几,0代表星期日 0—6
如:
*/1 * * * * 每分钟执行一次。
*
KMP算法详解
hm4123660
数据结构 C++ 算法 字符串 KMP
字符串模式匹配我们相信大家都有遇过,然而我们也习惯用简单匹配法(即Brute-Force算法),其基本思路就是一个个逐一对比下去,这也是我们大家熟知的方法,然而这种算法的效率并不高,但利于理解。
假设主串s="ababcabcacbab",模式串为t="
枚举类型的单例模式
zhb8015
单例模式
E.编写一个包含单个元素的枚举类型[极推荐]。代码如下:
public enum MaYun {himself; //定义一个枚举的元素,就代表MaYun的一个实例private String anotherField;MaYun() {//MaYun诞生要做的事情//这个方法也可以去掉。将构造时候需要做的事情放在instance赋值的时候:/** himself = MaYun() {*
Kafka+Storm+HDFS
ssydxa219
storm
cd /myhome/usr/stormbin/storm nimbus &bin/storm supervisor &bin/storm ui &Kafka+Storm+HDFS整合实践kafka_2.9.2-0.8.1.1.tgzapache-storm-0.9.2-incubating.tar.gzKafka安装配置我们使用3台机器搭建Kafk
Java获取本地服务器的IP
中华好儿孙
java Web 获取服务器ip地址
System.out.println("getRequestURL:"+request.getRequestURL());
System.out.println("getLocalAddr:"+request.getLocalAddr());
System.out.println("getLocalPort:&quo