公司计划系统的开展接口自动化测试,需要我这边调研一下主流的接口测试框架给后端测试(主要测试接口)的同事介绍一下每个框架的特定和使用方式。后端同事根据他们接口的特点提出一下需求,看哪个框架更适合我们。
需求
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
优点:
缺点:
没有编辑器插件对语法校验,容易出错。
官方文档没有详细的说明。
扩展不方便。
[
{
"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"]}
]
}
}]
总结:可以考虑,至于接口数据的初始化可能需要单独处理。
doc: https://cn.httprunner.org/quickstart/
###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有一定门槛,看测试人员的学些能力和接受速度。
doc: https://docs.gauge.org/latest/writing-specifications.html#special-parameter-csv
###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)
总结:推荐使用,代码相对简单,功能足够灵活。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
你可能感兴趣的:(软件测试,功能测试,软件测试,自动化测试,程序人生,职场和发展)
确保视频播放顺畅:恢复quartz.dll文件完整性的步骤
mian401
音视频 电脑
在Windows操作系统中,quartz.dll是一个至关重要的动态链接库(DLL)文件,它负责处理多媒体流和视频渲染。当这个文件出现问题时,可能会导致视频播放器无法正常工作、媒体编码解码失败或其它相关问题。本文将探讨quartz.dll文件丢失或损坏的常见原因,并提供详细的解决方案。quartz.dll文件的作用quartz.dll是DirectShow技术的一部分,主要用于管理和控制视频播放流
程序代码篇---项目目录结构&HSV掩膜&Opencv图像处理
Ronin-Lotus
程序代码篇 学习 Python opencv HSV 图像处理 项目目录
文章目录前言第一部分:项目目录结构第二部分:HSV提取HSV色调(Hue)含义取值范围饱和度(Saturation)含义取值范围亮度(Value)含义取值范围第三部分:Opencv图像处理1.读取和显示图像2.转换颜色空间3.边缘检测4.形态变换5.图像阈值6.图像平滑7.图像轮廓总结前言以上就是今天要讲的内容,本文简单介绍了项目目录结构、HSV掩膜、Opencv图像处理第一部分:项目目录结构一个
SpringMVC中request的参数名和形参名不一致怎么办?
violin-wang
SpringBoot java spring spring boot springmvc
解决方案:加上@RequestParam注解即可,注解中value为请求参数名。不写的话默认和形参名一致。
Python 中的 with open:文件操作的最佳实践
木觞清
python 开发语言
在Python中,文件操作是最常用的一项任务,无论是读取文件内容,还是将数据写入文件。传统的文件操作方式使用open()和close()函数来处理文件,但在实际开发中,我们推荐使用withopen()语句来进行文件操作。本文将详细介绍如何使用withopen()来安全、简洁、高效地进行文件操作。什么是withopen()?withopen()是Python中的上下文管理器(contextmanag
Hive分区和分桶
码农小旋风
后端
Hive分区和分桶两种用于优化查询性能的数据组织策略,数仓设计的关键概念,可提升Hive在读取大量数据时的性能。1分区(Partitioning)根据表的某列的值来组织数据。每个分区对应一个特定值,并映射到HDFS的不同目录。为大幅减少数据量,基本必须要做!常用于经常查询的列,如日期、区域等。这样可以在查询时仅扫描相关的分区,而不是整个数据集,从而减少查询所需要处理的数据量,提高查询效率。物理上将
如何轻松添加并修复Windows中的psapi.dll文件
mian401
windows
在使用计算机的过程中,可能会遇到这样的情况:尝试运行某个程序时,系统弹出一个错误提示,告知“psapi.dll未找到”或者“psapi.dll丢失”。这个DLL文件是Windows操作系统的一部分,它包含了进程和线程管理的API函数,对于许多应用程序来说至关重要。如果系统中缺少了这个文件,或者该文件被损坏,那么依赖于它的程序就无法正常工作。什么是psapi.dll?psapi.dll(Proces
注册表知识与技巧大全
George-Yao
Other microsoft windows user system internet shell
注册表知识和技巧大全注册表基础:********系统文件夹:*********名称路径含义AppDataC:\Windows\ApplicationData应用程序CacheC:\Windows\TemporaryInternetFiles浏览器缓存CookiesC:\Windows\CookiesDesktopDesktop桌面FavoritesFavorites收藏夹FontsFonts字体H
基于模糊RBF神经网络轨迹跟踪研究(Matlab代码实现)
@橘柑橙柠桔柚
神经网络 matlab mvc
个人主页欢迎来到本博客❤️❤️博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。⛳️座右铭:行百里者,半于九十。本文目录如下:目录1概述2运行结果3参考文献4Matlab代码实现1概述模糊控制(FuzzyControl)是1965年,由美国的Zadeh率先创立了模糊集合论,后来又提出了模糊逻辑控制器的概念和有关定理。于1974年第一次组成了模糊逻辑控制器,并使用于锅炉和汽轮机的控制系统
笔记系列----逻辑备份和恢复 imp/exp/impdp/expdp
柠檬
oracle 数据库 sql
注:需要打开监听1.传统的导入导出exp/imp传统的导入导出程序是exp/imp,用于实施数据库的逻辑备份和恢复导出程序exp将数据库的对象定义和数据被分到一个二进制文件中导入程序imp将二进制中的对象定义和数据导入到数据库中导入导出程序特点:1)按时间保存2)允许导出指定表,并重新导入新的数据库中3)可以把数据库迁移到另外一台异构服务器上4)在2个不同版本的oracle之间的数据传输数据5)在
html中取消列表圆点,css列表怎么去掉点?
李淳风的谜底
html中取消列表圆点
css列表怎么去掉点?在CSS中,可以通过设置li标签的list-style属性为none将列表前的圆点去掉。下面本篇文章就来给大家介绍一下CSSlist-style属性,希望对大家有所帮助。list-style属性在一个声明中设置所有的列表属性。说明:该属性是一个简写属性,涵盖了所有其他列表样式属性。由于它应用到所有display为list-item的元素,所以在普通的HTML和XHTML中只能
函数解耦与耦合:软件设计中的艺术
Chen_Chance
软件需求
函数解耦与耦合:软件设计中的艺术在软件开发中,函数是构成程序的基本单元,而函数之间的相互关系则直接影响到软件的可维护性、可扩展性和可测试性。本文将探讨函数解耦和耦合的概念,以及它们在软件设计中的重要性。耦合(Coupling)耦合是指不同模块或函数之间的相互依赖关系。在软件设计中,耦合可以是紧密的,也可以是松散的。紧耦合(TightCoupling)紧耦合指的是模块或函数之间高度依赖,一个模块的变
GPU硬件架构分析
你一身傲骨怎能输
渲染管线 硬件架构
GPU和CPU的差异CPU与GPU的设计对比核心数量与计算单元:CPU:通常核心数量较少(如4到16个核心),每个核心都有独立的控制单元。这种设计使得CPU能够高效处理复杂的任务和多线程操作,适合需要快速响应和低延迟的应用。GPU:计算单元数量非常多(可能达到几千个),多个计算单元共享一个控制单元。这种设计使得GPU能够同时处理大量的并行任务,特别适合大规模数据处理和图形渲染。内存设计:CPU:内
React 和 Vue _使用区别
m0_74823490
vue.js react.js javascript
目录一、框架介绍1.Vue2.React?二、框架结构1.创建应用2.框架结构三、使用区别1.单页面组成2.样式3.显示响应式数据4.响应式html标签属性5.控制元素显隐6.条件渲染7.渲染列表react和vue是目前前端比较流行的两大框架,前端程序员应该将两种框架都掌握,本文总结一些基本知识点的使用区别。一、框架介绍1.VueVue是一个框架,也是一个生态。其功能覆盖了大部分前端开发常见的需求
蓝桥杯python基础算法(2-2)——基础算法(C)——递归
X _X
Python Lanqiao 算法
四、递归递归出口:这是递归过程中的终止条件,防止函数无限制地调用自身。当前问题如何变成子问题:这是递归函数中最重要的部分,即如何将当前问题逐步简化为更小的子问题。例题-汉诺塔Hanoi塔由n个大小不同的圆盘和三根木柱a,b,c组成。开始时,这n个圆盘由大到小依次套在a柱上,如图所示。要求把a柱上n个圆盘按下述规则移到c柱上:(1)一次只能移一个圆盘;(2)圆盘只能在三个柱上存放;(3)在移动过程中
软件工程——内聚性和耦合性
SUGERBOOM
软件工程
一、耦合性耦合性指软件结构中模块相互紧密连接的紧密程度。耦合性由高到低分别为:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合。1.内容耦合:一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一模块的内部;一个模块有多个入口;两个模块有部分代码重叠。内容耦合是程度最高的耦合,内容的非正常访问可能造成内容耦合2.公共耦合:若干模块访问一个公共的数据环境(全局数据
车载诊断数据库---ODX数据库解析
车载诊断技术
车载电子电气架构 数据库 人工智能 AUTOSAR 架构 软件工程 汽车
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节能减排。无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事.而不是让内心的烦躁、焦虑、毁掉你本就不多的热情和定力。时间不知不觉中,快
深度学习:基于MindNLP的RAG应用开发
Landy_Jay
深度学习 人工智能
什么是RAG?RAG(Retrieval-AugmentedGeneration,检索增强生成)是一种结合检索(Retrieval)和生成(Generation)的技术,旨在提升大语言模型(LLM)生成内容的准确性、相关性和时效性。基本思想:通过外部知识库动态检索与用户查询相关的信息,并将检索结果作为上下文输入生成模型,辅助生成更可靠的回答。与传统LLM的区别:传统LLM仅依赖预训练参数中的静态知
可能是最深入全面的图解 Java Virtual Threads
jvmjvm虚拟机
本文尽我所能,用了数月时间,在学习了JavaVirtualTheads的一些设计和实现理念后,用我所能的精炼文字和画图,去记录我的所学。是我现在能找到的最深入全面的图解JavaVirtualThreads文章。本文摘自我在编写的开源互动图书《面向技术宅的JVM内幕》中的VirtualThreads一节。如图片不清,请转回原文。VirtualThreads按这本书作者的德性,和这本书的定位,这里不会
【2003年江西省电子专题赛 - 现场制作】路灯自动开关的模拟装置
二十画~书生
江西省电子专题赛 - 现场制作 人工智能 嵌入式硬件 笔记 硬件工程 经验分享 其他
前言电子专题设计竞赛作为推动电子技术创新与实践的重要平台,历来吸引了众多电子爱好者的积极参与。本专栏旨在通过对往年江西电子专题设计竞赛现场制作赛题的深入剖析,系统梳理和总结其中的核心知识点与技术难点。希望能够帮助读者更好地掌握核心知识,为未来的竞赛挑战奠定坚实基础。在分享的同时,也能巩固自己的知识点,文章书写的比较详细,看起来比较繁琐,只要我们耐心看完,一定可以将赛题了解透彻的,让我们一同回顾这些
threejs起步学习之创建旋转立方体并随时停止和控制旋转
three.js
直接看成品可以看到点击开始旋转的时候立方体开始旋转,点击停止旋转的时候立方体停止旋转。先放官网文档threejs官网点击en切换为中文,然后点击创建第一个场景,页面就全部变成中文啦。先使用原生js编写代码,首先就是下载threejs然后引入然后就可以使用THREE这个对象了要创建一个立方体,首先我们需要创建一个场景,一个摄像机,一个渲染器,这样我们才能透过摄像机看到渲染出的场景varwidth=5
跟李沐学AI:视频生成类论文精读(Movie Gen、HunyuanVideo)
Landy_Jay
人工智能
MovieGen:ACastofMediaFoundationModels简介MovieGen是Meta公司提出的一系列内容生成模型,包含了3.2.1预训练数据MovieGen采用大约100M的视频-文本对和1B的图片-文本对进行预训练。图片-文本对的预训练流程与Meta提出的Emu:Enhancingimagegenerationmodelsusingphotogenicneedlesinaha
【爬虫】JS逆向解决蝉妈妈加密参数data
秋无之地
爬虫JS逆向 python 爬虫 js逆向
⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️作者:秋无之地简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据开发、数据分析等。欢迎小伙伴们点赞、收藏⭐️、留言、关注,关注必回关目录一、先打开目标网站,打开F12调试模式二、通过刷新页面定位接口,并找到接口上的加密参数data三、打开启动器(Initiator)
Python 异常处理
weixin_33675507
python 操作系统 runtime
python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。异常处理:本站Python教程会具体介绍。断言(Assertions):本站Python教程会具体介绍。python标准异常异常名称描述BaseException所有异常的基类SystemExit解释器请求退出KeyboardInterrupt用户中断执行(通常是输入^C)E
PyQt和QML 混合编程下出现 unable to convert a Python 'int' to C++ ‘int’ 错误
乱乱乱乱步
第一篇博客写在出差路上。最近在调试一套PyQt与QML混合编程的程序,程序出现这个错误unabletoconvertaPython'int'toC++'int',并没有定位到具体哪行代码出错,经过排查,我发现原因如下self.distanceStatus=distanceStatus赋值给self.distanceStatus的数值过大,超出QML里面int类型的取值范围,也就是溢出了。Text{
基于禁忌搜索算法的TSP问题最优路径搜索matlab仿真
软件算法开发
MATLAB程序开发 # 路线规划 matlab 禁忌搜索算法 TSP 最优路径搜索
目录1.程序功能描述2.测试软件版本以及运行结果展示3.核心程序4.本算法原理5.完整程序1.程序功能描述基于禁忌搜索算法的TSP问题最优路径搜索,旅行商问题(TSP)是一个经典的组合优化问题。其起源可以追溯到19世纪初,最初是在物流配送、线路规划等实际场景中被提出。简单来说,给定一组城市和城市之间的距离,旅行商需要从一个城市出发,访问每个城市恰好一次,最后回到起始城市,目标是找到总路程最短的路线
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
神经常微分方程(NeuralODEs)是深度学习领域的创新性模型架构,它将神经网络的离散变换扩展为连续时间动力系统。与传统神经网络将层表示为离散变换不同,NeuralODEs将变换过程视为深度(或时间)的连续函数。这种方法为机器学习开创了新的研究方向,尤其在生成模型、时间序列分析和物理信息学习等领域具有重要应用。本文将基于Torchdyn(一个专门用于连续深度学习和平衡模型的PyTorch扩展库)
招聘 | 具身智能机器人方向全职作者
量子位
关注前沿科技量子位未来同事你好。你知道“具身智能机器人”了吗?是否希望成为这个时代性技术和产品的长期报道者?现在,我们正在招聘这样一位专注于具身智能机器人方向的原创作者。岗位是全职,工作地点base:北京中关村。工作职责:1、关注具身智能领域新动态新进展;2、持续挖掘撰写具身智能独家原创内容;3、与具身智能领域玩家建立良好联系;4、构建体系化认知和行业洞察。岗位要求:1、对具身智能、前沿科技等科技
ULTIMATE VOCAL REMOVER V5 for Mac v5.6 - UVR5终极人声去除器
qw人太好
macos uv
ULTIMATEVOCALREMOVERV5是一款功能强大的音频处理软件,旨在帮助用户去除音频文件中的人声部分,使其更适合用作背景音乐或进行混音处理。该软件使用了先进的音频处理算法,能够准确地识别和去除音频文件中的人声,从而获得纯净的背景音乐。无论是歌曲还是其他音频文件,ULTIMATEVOCALREMOVERV5都可以轻松去除其中的人声部分,让用户更好地享受纯音乐的乐趣。前往Mac荔枝下载ULT
解决:AttributeError: module ‘tensorflow‘ has no attribute ‘variable_scope‘
小桥流水---人工智能
Python程序代码 Python常见bug 算法 tensorflow neo4j 人工智能
AttributeError:module'tensorflow'hasnoattribute'variable_scope'报错的原因是,tf.variable_scope在TensorFlow2.x中已经被移除,而它是TensorFlow1.x的一种构建静态图的特性。在TensorFlow2.x中,可以通过tf.name_scope或者直接使用函数和KerasAPI来替代。解决方法(最推荐方法
用swap函数交换数字的时候的bug
编程初学者----晨哥
bug 算法 数据结构
我们先看下面一段代码#define_CRT_SECURE_NO_WARNINGS1#includevoidswap(intx,inty){inttemp=x;x=y;y=temp;}intmain(){inta=0,b=0;printf("请输入a和b");scanf("%d%d",&a,&b);printf("交换前a是%db是%d\n",a,b);swap(a,b);printf("交换后a是
[黑洞与暗粒子]没有光的世界
comsci
无论是相对论还是其它现代物理学,都显然有个缺陷,那就是必须有光才能够计算
但是,我相信,在我们的世界和宇宙平面中,肯定存在没有光的世界....
那么,在没有光的世界,光子和其它粒子的规律无法被应用和考察,那么以光速为核心的
&nbs
jQuery Lazy Load 图片延迟加载
aijuans
jquery
基于 jQuery 的图片延迟加载插件,在用户滚动页面到图片之后才进行加载。
对于有较多的图片的网页,使用图片延迟加载,能有效的提高页面加载速度。
版本:
jQuery v1.4.4+
jQuery Lazy Load v1.7.2
注意事项:
需要真正实现图片延迟加载,必须将真实图片地址写在 data-original 属性中。若 src
使用Jodd的优点
Kai_Ge
jodd
1. 简化和统一 controller ,抛弃 extends SimpleFormController ,统一使用 implements Controller 的方式。
2. 简化 JSP 页面的 bind, 不需要一个字段一个字段的绑定。
3. 对 bean 没有任何要求,可以使用任意的 bean 做为 formBean。
使用方法简介
jpa Query转hibernate Query
120153216
Hibernate
public List<Map> getMapList(String hql,
Map map) {
org.hibernate.Query jpaQuery = entityManager.createQuery(hql);
if (null != map) {
for (String parameter : map.keySet()) {
jp
Django_Python3添加MySQL/MariaDB支持
2002wmj
mariaDB
现状
首先,
[email protected] 中默认的引擎为 django.db.backends.mysql 。但是在Python3中如果这样写的话,会发现 django.db.backends.mysql 依赖 MySQLdb[5] ,而 MySQLdb 又不兼容 Python3 于是要找一种新的方式来继续使用MySQL。 MySQL官方的方案
首先据MySQL文档[3]说,自从MySQL
在SQLSERVER中查找消耗IO最多的SQL
357029540
SQL Server
返回做IO数目最多的50条语句以及它们的执行计划。
select top 50
(total_logical_reads/execution_count) as avg_logical_reads,
(total_logical_writes/execution_count) as avg_logical_writes,
(tot
spring UnChecked 异常 官方定义!
7454103
spring
如果你接触过spring的 事物管理!那么你必须明白 spring的 非捕获异常! 即 unchecked 异常! 因为 spring 默认这类异常事物自动回滚!!
public static boolean isCheckedException(Throwable ex)
{
return !(ex instanceof RuntimeExcep
mongoDB 入门指南、示例
adminjun
java mongodb 操作
一、准备工作
1、 下载mongoDB
下载地址:http://www.mongodb.org/downloads
选择合适你的版本
相关文档:http://www.mongodb.org/display/DOCS/Tutorial
2、 安装mongoDB
A、 不解压模式:
将下载下来的mongoDB-xxx.zip打开,找到bin目录,运行mongod.exe就可以启动服务,默
CUDA 5 Release Candidate Now Available
aijuans
CUDA
The CUDA 5 Release Candidate is now available at http://developer.nvidia.com/<wbr></wbr>cuda/cuda-pre-production. Now applicable to a broader set of algorithms, CUDA 5 has advanced fe
Essential Studio for WinRT网格控件测评
Axiba
JavaScript html5
Essential Studio for WinRT界面控件包含了商业平板应用程序开发中所需的所有控件,如市场上运行速度最快的grid 和chart、地图、RDL报表查看器、丰富的文本查看器及图表等等。同时,该控件还包含了一组独特的库,用于从WinRT应用程序中生成Excel、Word以及PDF格式的文件。此文将对其另外一个强大的控件——网格控件进行专门的测评详述。
网格控件功能
1、
java 获取windows系统安装的证书或证书链
bewithme
windows
有时需要获取windows系统安装的证书或证书链,比如说你要通过证书来创建java的密钥库 。
有关证书链的解释可以查看此处 。
public static void main(String[] args) {
SunMSCAPI providerMSCAPI = new SunMSCAPI();
S
NoSQL数据库之Redis数据库管理(set类型和zset类型)
bijian1013
redis 数据库 NoSQL
4.sets类型
Set是集合,它是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是O(1)。对集合我们可以取并集、交集、差集。通过这些操作我们可以实现sns中的好友推荐和blog的tag功能。
sadd:向名称为key的set中添加元
异常捕获何时用Exception,何时用Throwable
bingyingao
用Exception的情况
try {
//可能发生空指针、数组溢出等异常
} catch (Exception e) {
 
【Kafka四】Kakfa伪分布式安装
bit1129
kafka
在http://bit1129.iteye.com/blog/2174791一文中,实现了单Kafka服务器的安装,在Kafka中,每个Kafka服务器称为一个broker。本文简单介绍下,在单机环境下Kafka的伪分布式安装和测试验证 1. 安装步骤
Kafka伪分布式安装的思路跟Zookeeper的伪分布式安装思路完全一样,不过比Zookeeper稍微简单些(不
Project Euler
bookjovi
haskell
Project Euler是个数学问题求解网站,网站设计的很有意思,有很多problem,在未提交正确答案前不能查看problem的overview,也不能查看关于problem的discussion thread,只能看到现在problem已经被多少人解决了,人数越多往往代表问题越容易。
看看problem 1吧:
Add all the natural num
Java-Collections Framework学习与总结-ArrayDeque
BrokenDreams
Collections
表、栈和队列是三种基本的数据结构,前面总结的ArrayList和LinkedList可以作为任意一种数据结构来使用,当然由于实现方式的不同,操作的效率也会不同。
这篇要看一下java.util.ArrayDeque。从命名上看
读《研磨设计模式》-代码笔记-装饰模式-Decorator
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.Fi
Maven学习(一)
chenyu19891124
Maven私服
学习一门技术和工具总得花费一段时间,5月底6月初自己学习了一些工具,maven+Hudson+nexus的搭建,对于maven以前只是听说,顺便再自己的电脑上搭建了一个maven环境,但是完全不了解maven这一强大的构建工具,还有ant也是一个构建工具,但ant就没有maven那么的简单方便,其实简单点说maven是一个运用命令行就能完成构建,测试,打包,发布一系列功
[原创]JWFD工作流引擎设计----节点匹配搜索算法(用于初步解决条件异步汇聚问题) 补充
comsci
算法 工作 PHP 搜索引擎 嵌入式
本文主要介绍在JWFD工作流引擎设计中遇到的一个实际问题的解决方案,请参考我的博文"带条件选择的并行汇聚路由问题"中图例A2描述的情况(http://comsci.iteye.com/blog/339756),我现在把我对图例A2的一个解决方案公布出来,请大家多指点
节点匹配搜索算法(用于解决标准对称流程图条件汇聚点运行控制参数的算法)
需要解决的问题:已知分支
Linux中用shell获取昨天、明天或多天前的日期
daizj
linux shell 上几年 昨天 获取上几个月
在Linux中可以通过date命令获取昨天、明天、上个月、下个月、上一年和下一年
# 获取昨天
date -d 'yesterday' # 或 date -d 'last day'
# 获取明天
date -d 'tomorrow' # 或 date -d 'next day'
# 获取上个月
date -d 'last month'
#
我所理解的云计算
dongwei_6688
云计算
在刚开始接触到一个概念时,人们往往都会去探寻这个概念的含义,以达到对其有一个感性的认知,在Wikipedia上关于“云计算”是这么定义的,它说:
Cloud computing is a phrase used to describe a variety of computing co
YII CMenu配置
dcj3sjt126com
yii
Adding id and class names to CMenu
We use the id and htmlOptions to accomplish this. Watch.
//in your view
$this->widget('zii.widgets.CMenu', array(
'id'=>'myMenu',
'items'=>$this-&g
设计模式之静态代理与动态代理
come_for_dream
设计模式
静态代理与动态代理
代理模式是java开发中用到的相对比较多的设计模式,其中的思想就是主业务和相关业务分离。所谓的代理设计就是指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理。比如我们在进行删除操作的时候需要检验一下用户是否登陆,我们可以删除看成主业务,而把检验用户是否登陆看成其相关业务
【转】理解Javascript 系列
gcc2ge
JavaScript
理解Javascript_13_执行模型详解
摘要: 在《理解Javascript_12_执行模型浅析》一文中,我们初步的了解了执行上下文与作用域的概念,那么这一篇将深入分析执行上下文的构建过程,了解执行上下文、函数对象、作用域三者之间的关系。函数执行环境简单的代码:当调用say方法时,第一步是创建其执行环境,在创建执行环境的过程中,会按照定义的先后顺序完成一系列操作:1.首先会创建一个
Subsets II
hcx2013
set
Given a collection of integers that might contain duplicates, nums, return all possible subsets.
Note:
Elements in a subset must be in non-descending order.
The solution set must not conta
Spring4.1新特性——Spring缓存框架增强
jinnianshilongnian
spring4
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
shell嵌套expect执行命令
liyonghui160com
一直都想把expect的操作写到bash脚本里,这样就不用我再写两个脚本来执行了,搞了一下午终于有点小成就,给大家看看吧.
系统:centos 5.x
1.先安装expect
yum -y install expect
2.脚本内容:
cat auto_svn.sh
#!/bin/bash
Linux实用命令整理
pda158
linux
0. 基本命令 linux 基本命令整理
1. 压缩 解压 tar -zcvf a.tar.gz a #把a压缩成a.tar.gz tar -zxvf a.tar.gz #把a.tar.gz解压成a
2. vim小结 2.1 vim替换 :m,ns/word_1/word_2/gc  
独立开发人员通向成功的29个小贴士
shoothao
独立开发
概述:本文收集了关于独立开发人员通向成功需要注意的一些东西,对于具体的每个贴士的注解有兴趣的朋友可以查看下面标注的原文地址。
明白你从事独立开发的原因和目的。
保持坚持制定计划的好习惯。
万事开头难,第一份订单是关键。
培养多元化业务技能。
提供卓越的服务和品质。
谨小慎微。
营销是必备技能。
学会组织,有条理的工作才是最有效率的。
“独立
JAVA中堆栈和内存分配原理
uule
java
1、栈、堆
1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态域:存放静态成员(static定义的)5. 常量池:存放字符串常量和基本类型常量(public static f