- Python+Requests接口分层自动化测试框架
丁鱼教育
Python自动化测试requestspython
阅读本小节,需要读者具备如下前提条件:1.掌握一种编程语言基础,如java、python等。2.掌握一种单元测试框架,如java语言的testng框架、python的unittest框架。3.掌握目前主流的UI测试框架,移动端APP测试框架Appium,或者掌握Web端测试框架Selenium。4.如果是Appium框架,还需要掌握如何定位控件元素,原生页面可使用安卓SDK自带的uiautomat
- QMetry自动化框架:一站式功能测试解决方案
芮奕滢Kirby
QMetry自动化框架:一站式功能测试解决方案qafQualityAutomationFrameworkforweb,mobileweb,mobilenativeandrestweb-serviceusingSelenium,webdrier,TestNGandJavaJersey项目地址:https://gitcode.com/gh_mirrors/qa/qaf项目介绍QMetry自动化框架(Q
- 测试驱动技术(TDD)系列之5:从excel中读取测试驱动数据
测试开发Kevin
测试框架中参数化的一般形式在Junit4和TestNG框架中实现参数化的形式几乎是一致的。Junit4定义参数化数据,代码如下:publicstaticCollectionprepareData(){Object[][]object={{1,2,3},{0,2,2},{0,3,3}};returnArrays.asList(object);}TestNG定义参数化数据,代码如下:@DataProv
- 如何做大数据测试
测试界潇潇
软件测试软件测试功能测试自动化测试程序人生职场和发展
测试流程及测试方法没有太大的区别,重点说一下大数据测试相比传统测试的区别:1、数据规模:大数据测试所涉及的数据规模通常是海量级别的,而普通测试所涉及的数据规模较小。2、测试工具:大数据测试需要使用专门的测试工具和框架,如HadoopUnit、ApacheBigTop、JMeter、LoadRunner等,而普通测试则可以使用通用的测试工具和框架,如JUnit、TestNG等。3、测试目的:大数据测
- Python知识点:如何使用Allure进行测试报告生成
杰哥在此
Python系列python开发语言编程面试
Allure是一个灵活且功能强大的测试报告框架,可以与多种测试工具和框架(如JUnit、TestNG、Pytest等)集成,用于生成漂亮、交互式的测试报告。以下是如何使用Allure生成测试报告的步骤。1.安装Allure首先,需要安装Allure命令行工具。可以从Allure官方网站下载并按照安装步骤进行安装。或者使用Homebrew(适用于macOS)安装:brewinstallallure对
- 测试驱动技术(TDD)系列之3:详解Java数组
测试开发Kevin
在前面的文章中我介绍了如何通过junit4和TestNG实现参数化,这两种架构都通过二维数组来实现参数化,在这里我就给大家详细的介绍一下java数组。Junit4定义参数化数据,代码如下:publicstaticCollectionprepareData(){Object[][]object={{1,2,3},{0,2,2},{0,3,3}};returnArrays.asList(object)
- Maven仓库介绍
单手提煤气罐
JAVAjavamaven
1何为Maven仓库任何一个依赖、插件或者项目构建的输出都可以称为构件任何一个构件都有一组坐标唯一标识Maven可以在某个位置统一存储所有Maven项目共享的构件,这个统一的位置就是仓库2仓库的布局构件:groupId=org.testng、artifactId=testng、version=5.8、classifier=jdk15、packaging=jar,其对应的路径按如下步骤生成基于构件的
- 2021-12-01 JAVA TestNG 数据驱动:csv文件
e8a88b4a4052
2数据驱动是什么相同的测试脚本使用不同的测试数据,将测试数据与测试行为完全分离,这样的设计模式称为数据驱动,如测试网站的登录使用不同的用户名和密码步骤1、编写测试脚本,包含读取数据功能,数据来源为对象,文件或数据库等2、将测试数据存入外部对象,如对象,文件或数据库等3、运行脚本,读取测试数据4、验证测试结果使用TestNG进行数据驱动1、idea新建maven项目,选择java1.82、给项目命名
- eclipse离线添加TestNG插件
阳春三月594
1下载插件链接:https://pan.baidu.com/s/1WBGVNi5Ua_BncIyP7JYMSA提取码:hpl22.将插件放进对应文件夹1)将文件夹org.testng.eclipse_6.9.8.201510130443放进eclipse的features目录2)将文件夹org.testng.eclipse_6.9.8.201510130443放到eclipse的plugins目录
- PowerMock简介
SeanPenn
Java单元测试框架主要有JUnit和TestNG,常用的Mock框架主要有EasyMock、Mockito和JMock等,那么为什么还要有PowerMock呢?实际上,PowerMock并不是发明了一套新的Mock框架,而是在原有的几种框架基础上进行扩充,补充完成原有框架所不能完成的工作,从PowerMock的ReadMe文档中可以看出这点:PowerMockisaframeworkthat
- TestNG基础教程
好多可乐
java开发语言测试框架testng
TestNG基础教程一、常用断言二、执行顺序三、依赖测试四、参数化测试1、通过dataProvider实现2、通过xml配置(这里是直接跑xml)五、testng.xml常用配置方式1、分组维度控制2、类维度配置3、包维度配置六、TestNG并发测试1、通过注解来实现2、通过xml来实现七、异常测试八、忽略测试九、软断言一、常用断言二、执行顺序/***执行顺序*beforeSuite-before
- 为什么TestNg会成为Java测试框架的首选?还犹豫什么,看它!
测试界的彭于晏
自动化测试软件测试技术分享javaselenium测试工具压力测试自动化测试测试框架
上一篇自动化测试我们大概了解了测试的目标、测试的技术选型以及搭建平台的目标及需求,也确定了自动化测试方案以testNg作为整个测试流程贯穿的基础支持框架,那么testNg究竟有什么特点?本篇开始我们来详细的学习testNg这个测试框架。为什么要用testNg首先我们学习之前,先思考一个问题,java测试的框架很多,为什么要用testNg呢?比如junit,使用的人很多,几乎所有java开发人员都会
- springboot2.x基础教程:单元测试
程序员众推
单元测试用于测试单个代码组件,并确保代码按预期方式工作。单元测试由开发人员编写和执行。大多数情况下,会使用JUnit或TestNG这样的测试框架。测试用例通常在方法级别编写,并通过自动化执行。SpringBoot提供了一些注解和工具去帮助开发者测试他们的应用。在讲springboot单元测试之前,先简单介绍下软件测试的类型(从开发角度来说),跟如何写好一个单元测试。软件测试类型单元测试:用于测试单
- RobotFramework 安装教程
Young_svg
程序人生
⾃动化测试框架⼯具盘点安装步骤:页面介绍标准库:不需要安装,直接⽤,RF⾃带扩展库:快捷键实战RobotFramework安装教程⾃动化测试框架⼯具盘点java:junit和testng⼯具:postmen+newman+git+jenkinsjmeter+ant+git+jenkinspython:框架优点缺点推荐RobotFramework关键字驱动,语法简单,通俗易懂良好的拓展性唯⼀的有操作
- TestNG通过自定义Listener形式实现用例失败重试
测试开发Kevin
标签形式实现用例失败重试前面的文章讲解了可以通过标签的形式实现用例失败重试的方法,@Test(retryAnalyzer=MyRetry.class)。详情可以参考文章:详解TestNG中的用例失败重试和自定义监听器但是通过@Test标签方式仍然存在一定的问题,即该方法只能左右在类或者方法上,当测试类非常多的时候,需要在每一个类前都增加标签@Test(retryAnalyzer=MyRetry.c
- 保姆级教程:从0到1搭建web自动化测试环境
心软小念
软件测试技术分享前端
之前都是在linux上安装,第一次在windows上配置环境,加上距离上次配置环境有点久了,竟也花了点时间。特此记录下保姆级教程,给初学者一个有效的参考!一.环境搭建工具清单工具工具名版本Java开发工具包JDK1.8浏览器Chrome112.0IDEEclipse开发语言Java1.8Web自动化测试工具Selenium3.141.59依赖包管理Maven3.3.9测试框架TestNG6.14.
- pom文件指定main方法实现
wsfw014
自动化测试服务器
在pom.xml中添加代码:maven-assembly-pluginfalsejar-with-dependenciescom.XXX.api.app.Appmake-assemblypackageassembly在main方法执行testng的方法实现:importorg.testng.TestNG;importjava.util.ArrayList;importjava.util.List;
- WebDriver表格定位-----遍历表格的全部单元格
wsfw014
Selenium
importorg.openqa.selenium.By;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.WebElement;importorg.testng.annotations.Test;publicclassLocateTable{publicWebDriverdriver;@TestpublicvoidLoca
- 查找名称为test的文件
FredricZhu
LinuxShell,find.-name"test"-typefJava程序,packagecom.oracle.test;importjava.io.File;importjava.util.ArrayList;importjava.util.List;importorg.testng.annotations.Test;publicclassFindFileTest{publicvoidfin
- Java开发常用框架:效率框架、测试框架、日志框架、安全框架总结
cxzm_1024
Java基础开发框架Java基础
目录1、Java效率框架1.Lombox2.MapStruct2、测试框架1.JUnit2.TestNG3、日志框架1.Log4j2.SLF4J4、安全框架1.SpringSecurity2.ApacheShiro1、Java效率框架常见Java效率框架:Lombox、MapStruct等。1.LomboxLombox和MapStruct都是常见的Java效率框架,分别用于简化Java代码和简化B
- 测试驱动技术(TDD)系列之4:详解java操控excel的核心api
测试开发Kevin
在前面的文章讲解利用TestNG进行数据驱动:测试驱动技术(TDD)系列之2:详解TestNG参数化测试数据格式展示如下(junit4也类似):@DataProviderpublicObject[][]dp1(){returnnewObject[][]{newObject[]{1,1,0},newObject[]{2,1,1},newObject[]{2,1,2},};}大家可以看到,如果数据量不
- 2021-03-06
海蓝时见鲸_08dc
TestNG测试前的准备工作在idea中配置Maven环境1.首先我们需要去Maven官网上下载相应的Maven版本X84JKM}OADMNBFLAGD}L6{V.png2.打开IntellijIDEA工具,点击左上角的File菜单,在下拉菜单中选择settings选项,在弹出的settings界面中,在输入框输入Maven,然后点击maven选项![G~]U69)P0T10Q88T3{MI7T4
- Eclipse在线安装TestNG插件
测试freashman
一、testNG官网下载eclipse插件地址:https://testng.org/doc/download.html最新的插件地址:https://dl.bintray.com/testng-team/testng-eclipse-release/.二、在eclipse中安装插件1.help->installnewsoftware,点击add,Name:testNG,Location:http
- (二)allure框架+testNG+Maven+java构建生成自动化测试报告
M文涛
一.首先去官网下载allure.Zip包1.下载地址https://github.com/allure-framework/allure2/releases2.下载完成后解压zip包3.配置环境变量,如图1:图14.配置完成之后,cmd打开窗口,在黑窗口中输入:allure–version,如果显示正常的版本,说明已经配置成功了环境变量二.配置MAVEN环境变量(maven环境变量配置不做介绍,默
- 项目-Java-Junit-Lua
LXMXHJ
java学习javajunit开发语言
文章目录参考内容接口的本质基础HTTP接口Junit5基础内容测试注解断言前置条件嵌套测试参数化测试项目学习与JUnit4的显著区别Lua概述参考内容testNG教程:https://zhuanlan.zhihu.com/p/623245201maven项目创建教程:https://blog.csdn.net/m0_68857031/article/details/129842135junit5官
- TestNG中的DataProviders(@DataProvider annotation)
知识的宝藏
unittestingjava
目录什么是数据提供者?数据提供程序及其返回的内容DataProvider语法@DataProvider注释的方法可以返回什么?使用数据提供程序的测试用例如何在测试用例中使用数据提供程序?其他类中的数据提供程序在@DataProvider带注释的方法中将方法作为参数传递使用数据提供程序并行执行使用数据提供程序的并行执行TestNG为我们提供了许多特性来帮助我们简化自动化测试。其中一个特性是在Test
- java自动化之创建自动化框架项目(第一天)
阿里嘎多f
java接口自动化自动化
1.前言idea版本为2023.2java版本为17.0.9技术栈:javase:封装、泛型、反射、jdbc等testng:开源测试框架,是从Junit继承而来httpclient:java提供的与服务端http接口进行交互的库fastjson:处理json字符串、json数组jsonpath:解析json数据poi:操作excelallure:测试报告2.创建maven项目(1)创建项目File
- 3.7-使用jenkins 的pipeline实现maven项目的自动化构建部署
如沐春风细雨中
开发-测试技术基础知识培训
使用jenkins的pipeline实现maven项目的自动化构建部署回到第一章:目录文章目录使用jenkins的pipeline实现maven项目的自动化构建部署1、环境配置2、jenkins项目配置3、在blueOcean中构建部署1、环境配置同上一节3.6-使用Jenkins、gitlab、sonar、testNG实现maven项目的自动化构建部署达到的效果和上一节的构建的效果是一致的:开发
- 关于接口自动化中HttpDelete简述
LSYJ
最近在工作写一个接口自动化框架。以前只是小规模写过这样的接口自动化,现在希望将项目中所有的接口都包含进去本着持续修改的原则,一开始可以所有细枝末节功能不能完全实现,但核心功能已全部实现。技术上总体应用:Java+Testng+Maven实现。数据源取自三种:Excel文件、MySQL数据库、其他类型文件。说跑题了,哈哈。总体性的细节以后有机会写。先说一个问题。实际工作中的HttpDelete需要传
- 使用Jenkins执行TestNg+Selenium+Jsoup自动化测试和生成ExtentReport测试报告
penngo
java持续交付jenkinsselenium运维自动化测试
文章目录1、Jenkins1.1下载安装jenkins1.2安装HTMLPublisher插件2、使用Jenkins创建流水线任务2.1创建流水线2.2构建2.3测试报告上一篇已经介绍Maven整合TestNG、ExtentReports、Selenium、Jsoup测试项目工程的建立,本文介绍使用Jenkins执行自动化测试代码。1、Jenkins1.1下载安装jenkins下载jenkins:
- ASM系列六 利用TreeApi 添加和移除类成员
lijingyao8206
jvm动态代理ASM字节码技术TreeAPI
同生成的做法一样,添加和移除类成员只要去修改fields和methods中的元素即可。这里我们拿一个简单的类做例子,下面这个Task类,我们来移除isNeedRemove方法,并且添加一个int 类型的addedField属性。
package asm.core;
/**
* Created by yunshen.ljy on 2015/6/
- Springmvc-权限设计
bee1314
springWebjsp
万丈高楼平地起。
权限管理对于管理系统而言已经是标配中的标配了吧,对于我等俗人更是不能免俗。同时就目前的项目状况而言,我们还不需要那么高大上的开源的解决方案,如Spring Security,Shiro。小伙伴一致决定我们还是从基本的功能迭代起来吧。
目标:
1.实现权限的管理(CRUD)
2.实现部门管理 (CRUD)
3.实现人员的管理 (CRUD)
4.实现部门和权限
- 算法竞赛入门经典(第二版)第2章习题
CrazyMizzz
c算法
2.4.1 输出技巧
#include <stdio.h>
int
main()
{
int i, n;
scanf("%d", &n);
for (i = 1; i <= n; i++)
printf("%d\n", i);
return 0;
}
习题2-2 水仙花数(daffodil
- struts2中jsp自动跳转到Action
麦田的设计者
jspwebxmlstruts2自动跳转
1、在struts2的开发中,经常需要用户点击网页后就直接跳转到一个Action,执行Action里面的方法,利用mvc分层思想执行相应操作在界面上得到动态数据。毕竟用户不可能在地址栏里输入一个Action(不是专业人士)
2、<jsp:forward page="xxx.action" /> ,这个标签可以实现跳转,page的路径是相对地址,不同与jsp和j
- php 操作webservice实例
IT独行者
PHPwebservice
首先大家要简单了解了何谓webservice,接下来就做两个非常简单的例子,webservice还是逃不开server端与client端。我测试的环境为:apache2.2.11 php5.2.10做这个测试之前,要确认你的php配置文件中已经将soap扩展打开,即extension=php_soap.dll;
OK 现在我们来体验webservice
//server端 serve
- Windows下使用Vagrant安装linux系统
_wy_
windowsvagrant
准备工作:
下载安装 VirtualBox :https://www.virtualbox.org/
下载安装 Vagrant :http://www.vagrantup.com/
下载需要使用的 box :
官方提供的范例:http://files.vagrantup.com/precise32.box
还可以在 http://www.vagrantbox.es/
- 更改linux的文件拥有者及用户组(chown和chgrp)
无量
clinuxchgrpchown
本文(转)
http://blog.163.com/yanenshun@126/blog/static/128388169201203011157308/
http://ydlmlh.iteye.com/blog/1435157
一、基本使用:
使用chown命令可以修改文件或目录所属的用户:
命令
- linux下抓包工具
矮蛋蛋
linux
原文地址:
http://blog.chinaunix.net/uid-23670869-id-2610683.html
tcpdump -nn -vv -X udp port 8888
上面命令是抓取udp包、端口为8888
netstat -tln 命令是用来查看linux的端口使用情况
13 . 列出所有的网络连接
lsof -i
14. 列出所有tcp 网络连接信息
l
- 我觉得mybatis是垃圾!:“每一个用mybatis的男纸,你伤不起”
alafqq
mybatis
最近看了
每一个用mybatis的男纸,你伤不起
原文地址 :http://www.iteye.com/topic/1073938
发表一下个人看法。欢迎大神拍砖;
个人一直使用的是Ibatis框架,公司对其进行过小小的改良;
最近换了公司,要使用新的框架。听说mybatis不错;就对其进行了部分的研究;
发现多了一个mapper层;个人感觉就是个dao;
- 解决java数据交换之谜
百合不是茶
数据交换
交换两个数字的方法有以下三种 ,其中第一种最常用
/*
输出最小的一个数
*/
public class jiaohuan1 {
public static void main(String[] args) {
int a =4;
int b = 3;
if(a<b){
// 第一种交换方式
int tmep =
- 渐变显示
bijian1013
JavaScript
<style type="text/css">
#wxf {
FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#97FF98);
height: 25px;
}
</style>
- 探索JUnit4扩展:断言语法assertThat
bijian1013
java单元测试assertThat
一.概述
JUnit 设计的目的就是有效地抓住编程人员写代码的意图,然后快速检查他们的代码是否与他们的意图相匹配。 JUnit 发展至今,版本不停的翻新,但是所有版本都一致致力于解决一个问题,那就是如何发现编程人员的代码意图,并且如何使得编程人员更加容易地表达他们的代码意图。JUnit 4.4 也是为了如何能够
- 【Gson三】Gson解析{"data":{"IM":["MSN","QQ","Gtalk"]}}
bit1129
gson
如何把如下简单的JSON字符串反序列化为Java的POJO对象?
{"data":{"IM":["MSN","QQ","Gtalk"]}}
下面的POJO类Model无法完成正确的解析:
import com.google.gson.Gson;
- 【Kafka九】Kafka High Level API vs. Low Level API
bit1129
kafka
1. Kafka提供了两种Consumer API
High Level Consumer API
Low Level Consumer API(Kafka诡异的称之为Simple Consumer API,实际上非常复杂)
在选用哪种Consumer API时,首先要弄清楚这两种API的工作原理,能做什么不能做什么,能做的话怎么做的以及用的时候,有哪些可能的问题
- 在nginx中集成lua脚本:添加自定义Http头,封IP等
ronin47
nginx lua
Lua是一个可以嵌入到Nginx配置文件中的动态脚本语言,从而可以在Nginx请求处理的任何阶段执行各种Lua代码。刚开始我们只是用Lua 把请求路由到后端服务器,但是它对我们架构的作用超出了我们的预期。下面就讲讲我们所做的工作。 强制搜索引擎只索引mixlr.com
Google把子域名当作完全独立的网站,我们不希望爬虫抓取子域名的页面,降低我们的Page rank。
location /{
- java-归并排序
bylijinnan
java
import java.util.Arrays;
public class MergeSort {
public static void main(String[] args) {
int[] a={20,1,3,8,5,9,4,25};
mergeSort(a,0,a.length-1);
System.out.println(Arrays.to
- Netty源码学习-CompositeChannelBuffer
bylijinnan
javanetty
CompositeChannelBuffer体现了Netty的“Transparent Zero Copy”
查看API(
http://docs.jboss.org/netty/3.2/api/org/jboss/netty/buffer/package-summary.html#package_description)
可以看到,所谓“Transparent Zero Copy”是通
- Android中给Activity添加返回键
hotsunshine
Activity
// this need android:minSdkVersion="11"
getActionBar().setDisplayHomeAsUpEnabled(true);
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- 静态页面传参
ctrain
静态
$(document).ready(function () {
var request = {
QueryString :
function (val) {
var uri = window.location.search;
var re = new RegExp("" + val + "=([^&?]*)", &
- Windows中查找某个目录下的所有文件中包含某个字符串的命令
daizj
windows查找某个目录下的所有文件包含某个字符串
findstr可以完成这个工作。
[html]
view plain
copy
>findstr /s /i "string" *.*
上面的命令表示,当前目录以及当前目录的所有子目录下的所有文件中查找"string&qu
- 改善程序代码质量的一些技巧
dcj3sjt126com
编程PHP重构
有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码 时,你就要开始阅读它了。当你把代码拿给其他人看时,他必须阅读你的代码。因此,在编写时多花一点时间,你会在阅读它时节省大量的时间。让我们看一些基本的编程技巧: 尽量保持方法简短 尽管很多人都遵
- SharedPreferences对数据的存储
dcj3sjt126com
SharedPreferences简介: &nbs
- linux复习笔记之bash shell (2) bash基础
eksliang
bashbash shell
转载请出自出处:
http://eksliang.iteye.com/blog/2104329
1.影响显示结果的语系变量(locale)
1.1locale这个命令就是查看当前系统支持多少种语系,命令使用如下:
[root@localhost shell]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
- Android零碎知识总结
gqdy365
android
1、CopyOnWriteArrayList add(E) 和remove(int index)都是对新的数组进行修改和新增。所以在多线程操作时不会出现java.util.ConcurrentModificationException错误。
所以最后得出结论:CopyOnWriteArrayList适合使用在读操作远远大于写操作的场景里,比如缓存。发生修改时候做copy,新老版本分离,保证读的高
- HoverTree.Model.ArticleSelect类的作用
hvt
Web.netC#hovertreeasp.net
ArticleSelect类在命名空间HoverTree.Model中可以认为是文章查询条件类,用于存放查询文章时的条件,例如HvtId就是文章的id。HvtIsShow就是文章的显示属性,当为-1是,该条件不产生作用,当为0时,查询不公开显示的文章,当为1时查询公开显示的文章。HvtIsHome则为是否在首页显示。HoverTree系统源码完全开放,开发环境为Visual Studio 2013
- PHP 判断是否使用代理 PHP Proxy Detector
天梯梦
proxy
1. php 类
I found this class looking for something else actually but I remembered I needed some while ago something similar and I never found one. I'm sure it will help a lot of developers who try to
- apache的math库中的回归——regression(翻译)
lvdccyb
Mathapache
这个Math库,虽然不向weka那样专业的ML库,但是用户友好,易用。
多元线性回归,协方差和相关性(皮尔逊和斯皮尔曼),分布测试(假设检验,t,卡方,G),统计。
数学库中还包含,Cholesky,LU,SVD,QR,特征根分解,真不错。
基本覆盖了:线代,统计,矩阵,
最优化理论
曲线拟合
常微分方程
遗传算法(GA),
还有3维的运算。。。
- 基础数据结构和算法十三:Undirected Graphs (2)
sunwinner
Algorithm
Design pattern for graph processing.
Since we consider a large number of graph-processing algorithms, our initial design goal is to decouple our implementations from the graph representation
- 云计算平台最重要的五项技术
sumapp
云计算云平台智城云
云计算平台最重要的五项技术
1、云服务器
云服务器提供简单高效,处理能力可弹性伸缩的计算服务,支持国内领先的云计算技术和大规模分布存储技术,使您的系统更稳定、数据更安全、传输更快速、部署更灵活。
特性
机型丰富
通过高性能服务器虚拟化为云服务器,提供丰富配置类型虚拟机,极大简化数据存储、数据库搭建、web服务器搭建等工作;
仅需要几分钟,根据CP
- 《京东技术解密》有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的12月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
12月试读活动回顾:
http://webmaster.iteye.com/blog/2164754
本次技术图书试读活动获奖名单及相应作品如下:
一等奖(两名)
Microhardest:http://microhardest.ite