首页 文章 精选 留言 我的

精选列表

搜索[加密工具],共10000篇文章
优秀的个人博客,低调大师

软件测试工具书籍与面试题汇总

简介 本文是https://github.com/china-testing/python-api-tesing/blob/master/books.md的节选。 欢迎转载,转载请附带此简介,谢谢! 试题 软件测试综合面试题(高级测试)-试题.pdf 软件测试综合面试题(python测试开发).pdf 自动化_性能_web测试 - 试卷.pdf 自动化试卷.pdf 软件测试 优质代码:软件测试的原则、实践与模式 - 2015.pdf 应用程序性能测试的艺术 - 2012.pdf 图片.png 移动App测试实战:顶级互联网企业软件测试和质量提升最佳实践 - 2015.pdf 腾讯Android自动化测试实战 - 2016.pdf 软件性能测试过程详解与案例剖析(第二版)- 2012.pdf 软件测试价值提升之路 - 2016.pdf Praxiswissen Softwaretest - Test Analyst und Technical Test Analyst Aus - 2015.pdf Google软件测试之道 - 2013.pdf 图片.png Advanced Software Testing - Vol. 2, 2nd Edition Guide to the ISTQB Advanced Certification as an Advanced Test Manager - 2014.pdf 图片.png std1008-1987 IEEE 1008 单元测试国际标准.pdf IEEE Std 829-2008 测试计划模板.pdf BS ISO IEC 25010-2011 Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — System and software quality models.pdf IEEE-Std-829-2008.pdf ISO-IEC 25010 系统和软件质量模型.pdf Hands-On Continuous Integration and Delivery - 2018.pdf Remote Usability Testing - 2018.pdf 图片.png Database Benchmarking and Stress Testing - 2018.pdf Python Testing with pytest - 2017.pdf 图片.png [高级软件测试卷2:高级软件测试经理].Rex.Black.扫描版.pdf Rocky.Nook.Improving.the.Test.Process.Dec.2013.pdf Software Testing Foundations 4th - 2014.pdf Rocky.Nook Advanced Software Testing .Vol.3.2nd.Edition - 2015.pdf 深入理解Android自动化测试 (移动开发) - 2016.pdf 精通Metasploit渗透测试 (图灵程序设计丛书) - 2016.pdf 测试架构师修炼之道:从测试工程师到测试架构师 - 2016.pdf Web渗透测试:使用Kali Linux (图灵程序设计丛书) - 2014.pdf Kali Linux高级渗透测试(原书第2版) (网络空间安全技术丛书) - 2018.pdf 图片.png Kali Linux 无线渗透测试入门指南 - 2016.pdf Android移动性能实战 - 2017.pdf 图片.png 有效的单元测试 (华章程序员书库) - 2014.pdf Kali Linux渗透测试的艺术 - 2015.pdf 程序之美系列套装(6册)团队之美、项目管理之美、架构之美、数据之美、测试之美、安全之美 - 2015.pdf Sample Exam Questions- ISTQB Foundation Level-Agile Tester Extension Exam - 2016.pdf 参考资料 本文最新版本地址 本文涉及的python测试开发库 谢谢点赞! 本文相关海量书籍下载 渗透测试 Kali Linux Web Penetration Testing Cookbook 2nd - 2018.pdf 图片.png Learning Kali Linux Security Testing, Penetration Testing, and Ethical Hacking - 2018.pdf 图片.png Hands-On Penetration Testing on Windows - 2018.pdf 图片.png Offsec Press Kali Linux Revealed Mastering the Penetration Testing Distribution - 2017.pdf Mastering Kali Linux for Web Penetration Testing - 2017.pdf Mastering Kali Linux for Advanced Penetration Testing - Second Edition - 2017.pdf Kali Linux Web Penetration Testing Cookbook - 2016.pdf Kali Linux 2 Windows Penetration Testing - 2016.pdf Kali Linux 2 – Assuring Security by Penetration Testing 3rd - 2016.pdf Hacking with Kali Practical Penetration Testing Techniques -2014.epub Python Web Penetration Testing Cookbook(PACKT,2015).pdf Python Penetration Testing for Developers - 2016.pdf Python Penetration Testing Essentials - 2015.pdf Learning Python Web Penetration - Christian Martorella - 2018.pdf 图片.png Learning Penetration Testing with Python(PACKT,2015).pdf Effective Python Penetration Testing - 2016.pdf Learning Nessus for Penetration Testing - 2014.pdf Penetration Testing with BackBox - 2014.pdf Packt Mobile Application Penetration Testing - 2016.pdf Mastering Wireless Penetration Testing for Highly Secured Environments - 2015.pdf Penetration Testing with the Bash shell - 2014.pdf No.Starch.Penetration.Testing.May.2014.pdf Hacking Basic Security, Penetration Testing and How to Hack - 2015.pdf Kali Linux Wireless Penetration - Cameron Buchanan 3rd - 2017.pdf Kali Linux Wireless Penetration Testing Cookbook - 2017.pdf

优秀的个人博客,低调大师

解析Java代码,自动生成文档工具使用说明

页面布局 左侧为菜单,菜单分为两级,一级表示模块,二级表示接口信息 右侧为接口详细信息,主要包括:模拟测试功能,接口详细信息说明,请求参数说明,响应参数说明,自动一个演示的例子表明接口的使用方式 如下图(图片拼接左侧菜单可能模糊或重影,凑合看): 演示页面布局 页面操作 左侧二级菜单可以双击修改,失去焦点时自动保存 image.png 左侧一级,二级菜单可以拖拽排序 所有带 “编辑”按钮的地方都可以编辑保存,textarea编辑时可以带回车换行,自动记录你的文本格式 请求参数和响应参数,本身是一个树结构,所有编辑的时候跟普通的编辑树一样操做,包括添加一级数据,添加子数据,修改,删除,保存等等,鼠标移入会有提示,如下图 5.如果需要给接口提供默认值,修改参数的默认值后,会自动重构json参数,方便测试 代码使用 在你的controller类上增加注解@Api("这里写模块名称"),这里一个@Api对应页面的一个一级菜单,即模块,模块可以由多个类组成,只需设置每个类的模块名称一样,程序会自动把模块名称一样的class组装成同一模块。

优秀的个人博客,低调大师

[雪峰磁针石博客]python与java对接工具Jython介绍

快速入门 下面我们使用jython来调用自定义jar包中的类。 编辑java文件:Beach.java public class Beach { private String name; private String city; public Beach(String name, String city){ this.name = name; this.city = city; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } } 编译成jar包: # javac Beach.java # echo Main-Class: Beach >manifest.txt # jar cvfm Craps.jar manifest.txt *.class 已添加清单 正在添加: Beach.class(输入 = 795) (输出 = 430)(压缩了 45%) 正在添加: Point.class(输入 = 708) (输出 = 445)(压缩了 37%) 添加Craps.jar到CLASSPATH,修改/etc/profile,修改CLASSPATH export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/usr/local/jython/Craps.jar 使用. /etc/profile导入变量。然后使用jython调用java代码。 # ./jython Jython 2.7.0 (default:9987c746f838, Apr 29 2015, 02:25:11) [Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.7.0_79 Type "help", "copyright", "credits" or "license" for more information. >>> import Beach >>> beach = Beach("Cocoa Beach","Cocoa Beach") >>> beach.getName() u'Cocoa Beach' >>> print beach.getName() Cocoa Beach >>> 基础 Linux安装: # java -jar jython-installer-2.7.0.jar # ./jython Jython 2.7.0 (default:9987c746f838, Apr 29 2015, 02:25:11) [Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.7.0_79 Type "help", "copyright", "credits" or "license" for more information. >>> windows安装:双击jython-installer-2.7.0.jar, 执行jython.exe 变量定义: java int x = 0; jython: x = 0 x = 'Hello Jython' 是动态类型的。 保留字: and assert break class continue def del elif else except exec finally for from global or pass print raise return try while with yield 编码结构使用缩进。 函数名也可以作为函数的参数。 语句关键字: if-elif-else for while continue break try-except-finally assert def print del raise import 文件名和类名一样可以直接导入。 此部分参考资料: http://www.jython.org/jythonbook/en/1.0/JythonAndJavaIntegration.html http://www.skylit.com/javamethods/faqs/createjar.html 参考资料: http://www.jython.org/jythonbook/en/1.0/ 模块和包 查看命名空间 >>> dir() ['__builtins__', '__doc__', '__name__', '__package__'] Jython的导入不像java那样必须在头部。导入java以右边名优先,python以左边名优先。模块查找路径: >>> import sys >>> sys.path ['', '/usr/local/jython2.7.0/Lib', '__classpath__', '__pyclasspath__/', '/usr/local/jython2.7.0/Lib/site-packages'] >>> import sys >>> sys.path ['', '/usr/local/jython2.7.0/Lib', '__classpath__', '__pyclasspath__/', '/usr/local/jython2.7.0/Lib/site-packages'] >>> import sys >>> sys.path.append("/home/andrew/code/java/mysql-connector-java-5.1.39/mysql-connector-java-5.1.39-bin.jar") >>> import com.mysql *sys-package-mgr*: can't write cache file for '/home/andrew/code/java/mysql-connector-java-5.1.39/mysql-connector-java-5.1.39-bin.jar' *sys-package-mgr*: can't write index file >>> dir(com.mysql) ['__name__', 'fabric', 'jdbc'] >>> import java.util.zip >>> dir(java.util.zip) ['Adler32', 'CRC32', 'CheckedInputStream', 'CheckedOutputStream', 'Checksum', 'DataFormatException', 'Deflater', 'DeflaterInputStream', 'DeflaterOutputStream', 'GZIPInputStream', 'GZIPOutputStream', 'Inflater', 'InflaterInputStream', 'InflaterOutputStream', 'ZipEntry', 'ZipError', 'ZipException', 'ZipFile', 'ZipInputStream', 'ZipOutputStream', '__name__'] >>> dir(java.util.zip.ZipInputStream) ['__class__', '__copy__', '__deepcopy__', '__delattr__', '__doc__', '__ensure_finalizer__', '__eq__', '__format__', '__getattribute__', '__hash__', '__init__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', '__subclasshook__', '__unicode__', 'available', 'class', 'close', 'closeEntry', 'equals', 'getClass', 'getNextEntry', 'hashCode', 'mark', 'markSupported', 'nextEntry', 'notify', 'notifyAll', 'read', 'reset', 'skip', 'toString', 'wait'] Jython 查找Jar和类的方法: python.packages.paths python.packages.directories java.class.path java.ext.dirs python.cachedir.skip pycimport把python字节码转换成java字节码。Jython导入java包可能有多个包合并。 >>> import sys >>> sys.path_hooks [<type 'org.python.core.JavaImporter'>, <type 'zipimport.zipimporter'>, <type 'ClasspathPyImporter'>] import pycimport 数据类型 Jython特定的collection,多用于给java传递数据。 # Import and use a Java ArrayList >>> import java.util.ArrayList as ArrayList >>> arr = ArrayList() # Add method will add an element to the list and return a boolean to signify successsful addition >>> arr.add(1) True >>> arr.add(2) True >>> print arr [1, 2] 比较老的Jarray,不推荐使用,不过可以创建空数组: 类型: Character Java Equivalent z boolean b byte c char d Double f Float h Short i Int l Long >>> my_seq = (1,2,3,4,5) >>> from jarray import array >>> array(my_seq,'i') array('i', [1, 2, 3, 4, 5]) >>> myStr = "Hello Jython" >>> array(myStr,'c') array('c', 'Hello Jython') >>> arr = zeros(10,'z') >>> arr array('z', [False, False, False, False, False, False, False, False, False, False]) >>> arr2 = zeros(6, 'i') >>> arr2 array('i', [0, 0, 0, 0, 0, 0]) 求素数 `>>> ``nums = range(2, 50) ` `>>> ``for i in range(2, 8): ` `... `` nums = filter(lambda x: x == i or x % i, nums)` `... ` `>>> ``print nums` 读取输入: <pre># Obtain a value from the command line and store it into a variable >>> import sys >>> fav_team = sys.stdin.readline() Cubs >>> sys.stdout.write("My favorite team is: %s" % fav_team) My favorite team is: Cubs</pre> 函数 协程: **def** search_file(filename): **print** 'Searching file *%s*' % (filename) my_file = open(filename, 'r') file_content = my_file.read() my_file.close() **while** True: search_text = (**yield**) search_result = file_content.count(search_text) **print** 'Number of matches: *%d*' % (search_result)</pre> Jython脚本编程基础 os.chdir不会改变jvm的启动目录。 >>> import os >>> os.getcwd() '/Users/frank/Desktop/frank/hg/jythonbook~jython-book/src/chapter8' >>> from java.io import File >>> f = File(".") >>> for x in f.list(): ... print x ... args.py search.py >>> os.chdir("/Users/frank") >>> os.getcwd() '/Users/frank' >>> os.listdir(".") ['Desktop', 'Documents', 'Downloads', 'Dropbox', 'Library', 'Movies', 'Music', 'Pictures', 'Public', 'Sites'] >>> g = File(".") >>> for x in g.list(): ... print x ... args.py search.py 编译代码 !/usr/local/jython2.7.0/bin/jython from javax.tools import (ForwardingJavaFileManager, ToolProvider, DiagnosticCollector,)names = ["/home/andrew/code/python/jythonbook/src/chapter8/HelloWorld.java"]compiler = ToolProvider.getSystemJavaCompiler()diagnostics = DiagnosticCollector()manager = compiler.getStandardFileManager(diagnostics, None, None)units = manager.getJavaFileObjectsFromStrings(names)comp_task = compiler.getTask(None, manager, diagnostics, None, None, units)success = comp_task.call()manager.close() import osimport sysimport glob from javax.tools import (forwardingjavafilemanager, toolprovider, diagnosticcollector,) tasks = {} def task(func): tasks[func.func_name] = func @taskdef clean(): files = glob.glob("\*.class") **for** file **in** files: os.unlink(file) @taskdef compile(): files = glob.glob("\*.java") _log("compiling *%s*" % files) **if** **not** _compile(files): quit() _log("compiled") def _log(message): **if** options.verbose: **print** message def _compile(names): compiler = toolprovider.getsystemjavacompiler() diagnostics = diagnosticcollector() manager = compiler.getstandardfilemanager(diagnostics, none, none) units = manager.getjavafileobjectsfromstrings(names) comp_task = compiler.gettask(none, manager, diagnostics, none, none, units) success = comp_task.call() manager.close() **return** success if name == '__main__': **from** **optparse** **import** optionparser parser = optionparser() parser.add_option("-q", "--quiet", action="store_false", dest="verbose", default=true, help="don't print out task messages.") parser.add_option("-p", "--projecthelp", action="store_true", dest="projecthelp", help="print out list of tasks.") (options, args) = parser.parse_args() **if** options.projecthelp: **for** task **in** tasks: **print** task sys.exit(0) **if** len(args) < 1: **print** "usage: jython builder.py [options] task" sys.exit(1) **try**: current = tasks[args[0]] **except** KeyError: **print** "task *%s* not defined." % args[0] sys.exit(1) current()</pre> public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); } } [frank@pacman chapter8]$ jython builder.py --helpUsage: builder.py [options] Options: -h, --help show this help message and exit -q, --quiet Don't print out task messages. -p, --projecthelp Print out list of tasks. [frank@pacman chapter8]$ jython builder.py --projecthelpcompileclean[frank@pacman chapter8]$ jython builder.py compilecompiling ['HelloWorld.java']compiled[frank@pacman chapter8]$ lsHelloWorld.java HelloWorld.class builder.py[frank@pacman chapter8]$ jython builder.py clean[frank@pacman chapter8]$ lsHelloWorld.java builder.py[frank@pacman chapter8]$ jython builder.py --quiet compile[frank@pacman chapter8]$ lsHelloWorld.class HelloWorld.java builder.py[frank@pacman chapter8]$

优秀的个人博客,低调大师

Kibana:Elasticsearch的窗口工具学习分享(Mac亲测有效)

Kibana Kibana这是您走进 Elastic Stack 的窗口。 在使用Elasticsearch,我们在安装启动后,想要可视化的去操作它。那么这个时候就需要Kibana了。 一、什么是Kibana 当你在安装完Elasticsearch,你可能就会有个疑问,接下来我怎么去可视化的操作Elasticsearch中的数据呢?这个时候Kibana就派上用场了。 Kibana 让您能够可视化 Elasticsearch 中的数据并操作 Elastic Stack。 Kibana是一个开源分析和可视化平台,旨在与Elasticsearch协同工作。您使用Kibana搜索,查看和与存储在Elasticsearch索引中的数据进行交互。您可以轻松地执行高级数据分析,并在各种图表,表格和地图中可视化您的数据。 Kibana使您可以轻松理解大量数据。其简单的基于浏览器的界面使您能够快速创建和共享动态仪表板,实时显示Elasticsearch查询的更改。 设置Kibana非常容易。您可以安装Kibana并在几分钟内开始探索您的Elasticsearch索引 - 无需代码,无需额外的基础架构。 关于Kibana,官网有很好很详细的说明。 请认准中文官网 总之功能非常强大,在这里就不放图了。 后期分享一些牛逼的操作。 二、安装 安装的时候,官方也有非常详细的操作,Kibana安装请自行前往。 Mac请跟我来 你只需要在命令行终端输入: brew install kibana 即可轻松安装。 安装后: $ brew install kibana Updating Homebrew... ==> Auto-updated Homebrew! Updated 1 tap (homebrew/core). ==> Updated Formulae overmind rustup-init sratoolkit znc ==> Downloading https://homebrew.bintray.com/bottles/kibana-6.2.4.high_sierra.bo ######################################################################## 100.0% ==> Pouring kibana-6.2.4.high_sierra.bottle.tar.gz ==> Caveats Config: /usr/local/etc/kibana/ If you wish to preserve your plugins upon upgrade, make a copy of /usr/local/opt/kibana/plugins before upgrading, and copy it into the new keg location after upgrading. To have launchd start kibana now and restart at login: brew services start kibana Or, if you don't want/need a background service you can just run: kibana ==> Summary ? /usr/local/Cellar/kibana/6.2.4: 49,501 files, 293.6MB 三、启动 这个时候你既可以在命令行输入: kibana 后台启动的话: $ nohup nice kibana & [1] 7370 appending output to nohup.out 四、访问Kibana http://localhost:5601/ 访问结果如下图 五、查看安装的信息 brew info kibana 可见: $ brew info kibana kibana: stable 6.2.4 (bottled), HEAD Analytics and search dashboard for Elasticsearch https://www.elastic.co/products/kibana /usr/local/Cellar/kibana/6.2.4 (49,502 files, 293.6MB) * Poured from bottle on 2018-07-18 at 17:09:56 From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/kibana.rb ==> Options --HEAD Install HEAD version ==> Caveats Config: /usr/local/etc/kibana/ If you wish to preserve your plugins upon upgrade, make a copy of /usr/local/opt/kibana/plugins before upgrading, and copy it into the new keg location after upgrading. To have launchd start kibana now and restart at login: brew services start kibana Or, if you don't want/need a background service you can just run: kibana ~ ⌚ 17:22:35 $ 六、查看Kibana的状态 localhost:5601/status 七、将Kibana与Elasticsearch 编辑连接 在开始使用Kibana之前,您需要告诉它您要探索哪些Elasticsearch索引。第一次访问Kibana时,系统会提示您定义与一个或多个索引的名称匹配的索引模式。 默认情况下,Kibana连接到运行的Elasticsearch实例localhost。要连接到其他Elasticsearch实例,请修改kibana.yml配置文件中的Elasticsearch URL 并重新启动Kibana。 比如说你在你的ES里面有两个索引并且对应的有值。 然后你在你的Kibana中,又可以看到这些值,那么就证明连接对了。 结语,好了,后续我们再学习一些高深的东西!

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册