- 接口自动化测试框架搭建
测试老哥
测试用例软件测试自动化测试python职场和发展测试工具接口测试
点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快一、原理及特点参数放在XML文件中进行管理用httpClient简单封装一个httpUtils工具类测试用例管理使用了testNg管理,使用了TestNG参数化测试,通过xml文件来执行case。测试报告这里用到第三方的包ReportNG项目组织用Maven二、准备使用工具:eclipse,maven用到的第三方jar包:dom4j、re
- TestNG-自动化测试框架
一、TestNG简介TestNG是一套开源的单元测试框架,它的灵感来源于JUnit,但其功能比JUnit强大,它支持更多的注解、并行测试、更多的参数化方法等。TestNG和JUnit都是java中常用的单元测试框架,二者的共同点有:都是基于注解的测试框架都可以对java代码进行单元测试都支持断言机制TestNG相较于JUnit有如下特点:TestNG支持更多的注解;TestNG支持并行测试,在测试
- 基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一个WebUI自动化框架(3)使用dataProvider实现数据驱动用例执行
程序员的世界你不懂
UI自动化相关javamavenselenium
在测试一个系统的时候,通常需要对同一个模块的用例输入各种不一样的数据,验证实际结果是否达到了我们期望值,此时如果不对测试数据单独出来维护,会使得测试用例与测试数据的耦合度很高,难以维护,当后期我们想要提供一批新的测试数据,那么我们就得在测试用例中把所有的测试数据全都手动修改一遍,操作很繁琐,下面举个实际例子。我们现在想要测试百度输入框,想测试输入不同数据(手机号、人名、电影名、英文、特殊字符)等,
- 接口自动化测试之(pytest)
测试小彭
pythonpytest
一、引入pytest用例管理框架python:pytestunittestjava:testngjunitpytest可以和selenium,requests,appium实现web,接口,app自动化pytest作用:1.发现并找到测试用例模块名必须以test_开头或者_test结尾类名必须以Test开头,不能有init方法用例方法必须以test开头2.按顺序执行测试用例3.通过断言判断测试结果
- testng的xml文件说明(TestNG DTD)
程序员的世界你不懂
《testNG专栏》xml数据库
testNG启发自JUnit和NUnit的一种测试框架,通过使用testNG使的测试更简单。,比如如下的一些特点:1.通过注释来管理测试2.多线程并发执行测试,且是安全的3.支持数据驱动测试4.支持在多样化的平台上使用(Eclipse、IDEA、Maven等)5.嵌入了BeanShell,使的更具灵活性6.支持依赖一、testNG的xml文件的结构简单的大概结构如下: -- ---- ---- -
- Spring 测试模块详解
白仑色
SpringTest单元测试集成测试JUnitJava开发
摘要在现代Java开发中,自动化测试已成为保障代码质量的重要手段。Spring提供了强大的测试支持模块SpringTest,它不仅简化了对Spring应用程序的测试流程,还集成了JUnit、TestNG和Mockito等主流测试框架,使得我们可以轻松编写单元测试和集成测试。本文将从以下几个方面深入讲解Spring测试:SpringTest模块概述单元测试与集成测试的区别常用注解及使用方式使用Moc
- 最新Selenium面试问题和答案-1_cesium面试题
2401_84557849
程序员selenium面试测试工具
引擎好比就是一个发动机。Selenium是没有关于测试用例和测试套件管理和执行的模块。我们需要借助第三方单元测试框架来实现用例管理和用例的执行。例如Java中有Junit或者testNG,Python中有unittest单元测试框架。4.Seleinum是否有读取excel文件的库没有,这里需要用到第三方工具。例如ApachePOI插件。5.Selenium有哪些组件?最早的有SeleniumID
- Eclipse(202309版本)+selenium+TestNG(64bit)
liliu_107_89
eclipseseleniumpython
1.使用的selenium版本是3.141.59;testNG版本是6.14.3,加入以下依赖:org.seleniumhq.seleniumselenium-java3.141.59org.testngtestng6.14.32.安装TestNG插件。TestNG是测试框架,自动化测试主要用到的是其强大的注解类。POM文件里已经定义了使用的testng版本是6.14.3,接下来需要安装该插件。在
- Selenium自动化测试全流程实战:从环境搭建到企业级应用(2025最新版)
Python×CATIA工业智造
seleniumpython测试工具
引言Selenium作为全球使用率最高的Web自动化测试工具,其生态已覆盖91%的Web应用测试场景。2025年最新数据显示,采用Selenium+TestNG的测试框架可将回归测试效率提升300%。本文将从基础操作到企业级实践,系统化解析Selenium技术体系。一、环境搭建与基础配置1.1跨平台环境部署核心组件安装流程:#Python环境(推荐3.10+)pipinstallselenium=
- 测试老鸟浅谈unittest和pytest的区别
yoyo小小汐~
软件测试pytestpythonunittest软件测试程序员
一、unittest#MyFunction.pydefadd(a,b):returna+b1.unittest单元测试#单元测试.py"""1、单元测试框架:自动校验结果python:unittest或者pytest、Java:Junit、TestNG怎么写用例:必须以test开头查找用例参数化"""importunittestimportmyFunctionimportHTMLTestRunne
- Selenium 测试框架 - Java
Thomas Kant
自动化测试seleniumjava测试工具
SeleniumJava实战入门与进阶指南Selenium是自动化WebUI测试的强大工具,而Java则是其广泛支持的主力语言之一。本文将手把手带你完成一个完整的SeleniumJava项目,从基础环境搭建,到多浏览器支持、定位技巧与动作模拟,并配合TestNG/JUnit实现高效测试自动化。一、环境准备与依赖配置✅前置条件安装JDK8+安装Maven准备对应的浏览器驱动(推荐使用WebDrive
- 软件测试流程详解
技术小怪
测试工具
测试流程概述软件测试通常遵循以下四个主要阶段,确保软件质量从微观到宏观的全面验证:单元测试→2.集成测试→3.系统测试→4.验收测试各阶段测试详解1.单元测试(UnitTesting)执行者:开发人员测试对象:代码的最小可测试单元(函数/方法/类)测试方式:开发人员编写代码后自行测试可使用JUnit、TestNG等自动化测试框架通常结合TDD(测试驱动开发)实践特点:关注代码逻辑正确性执行速度快测
- selenium java自动化_selenium + java + testNG 自动化环境搭建
麦安安
seleniumjava自动化
kSelenium终极自动化测试环境搭建(一)Selenium+Eclipse+Junit+TestNG第一步安装JDKJDk1.7.一路猛击‘下一步’,OK。安装完成后配置环境变量:JAVA_HOME=E:\Java\Java\jdk1.7.0_15PATH=%JAVA_HOME%\binCLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\too
- 面试经历---某能源公司
Trival_dream
面试能源职场和发展
面试list1.介绍下项目2.mysql和oracle的区别3.垃圾回收机制4.testng常用的assert5.testng常用的注解6.testng和junit的不同7.有紧急项目来了且人员不够的情况如何实现项目及时上线8.如何保证数据的一致性很多我都半年前看过,但是我都忘了。。但是照这个趋势,即使你全部看过,还是会有更难的问题等着。。什么才是尽头就很难说了
- Spring 测试(第二部分)
木西爷
SpringSpringTest
3.6SpringMVC测试框架SpringMVC测试框架为测试SpringMVC代码提供了一流的支持,使用流畅的API可以与JUnit、TestNG或任何其他测试框架一起使用。它是在spring-test模块的ServletAPI模拟对象上构建的,因此不使用正在运行的Servlet容器。它使用DispatcherServlet来提供完整的SpringMVC运行时行为,并支持使用TestConte
- TestNG 快速入门:核心能力与使用详解
白话测试
软件测试测试工具
文章目录前言一、注解1.1什么是注解?1.2注解在测试框架中的作用是什么?二、TestNG简介三、TestNG的主要能力及使用方法3.1测试用例管理能力3.1.1测试用例定义3.1.2测试数据管理(参数化与数据驱动)3.1.3依赖管理3.2断言能力3.2.1硬断言3.2.2软断言3.3测试用例执行能力3.3.1测试生命周期管理3.3.2用例组织与编排3.3.3并行执行3.4测试报告能力四、总结前言
- Selenium+Java元素定位与操作
Hi心之所向
javaselenium
SeleniumJavamaven镜像地址:SeleniumJavamaven镜像地址:https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-javamaven依赖:org.seleniumhq.seleniumselenium-java4.0.0-beta-4TestNG依赖:org.testngtestng7.3
- testng.xml配置
sunjian885
xml
1.TestNG的运行方式如下:1Withatestng.xmlfile直接runastestsuite2Withant使用ant3Fromthecommandline从命令行4IDE直接在IDE中执行在IDEA中直接运行的时候,需要说明的是:可以运行一个测试类,也可以单独运行一个测试的方法。在IDEA里执行,只需要右键,点击Runxxx即可。如果是在某一个方法的代码块里右键,出现的是Runmet
- 自动生成testng.xml
ssshen14
日常随笔testng.xml自动
工作中接到一个任务,调研是否可以实现rpc服务自动diff功能。本篇是其中的一个子功能,测试类的testng.xml自动实现。实现原理:1.实例化XmlSuite类2.扫描目录下所有的classes文件,然后遍历class的所有方法是否包含@Test注解3.步骤2中的必要信息放到XmlSuite中4.保存XmlSuite到指定位置主要方法:/***生成testng.xml*@return*/pub
- TestNG—— testng.xml
「已注销」
TestNGunittesting
简介:TestNG的官方文档的中文翻译版第3章,原文请见http://testng.org/doc/documentation-main.html3-testng.xml调用TestNG由几种不同方法:*使用testng.xml文件*使用ant*从命令行这节描述testng.xml的格式(文档的后面会讲到ant和命令行)。当前testng.xml的DTD文件可以从官方找到:http://testn
- 第二十五:Java自动化测试框架-TestNG之执行testng.xml和失败用例重跑(第一种)
卢卡平头哥
TestNGjavaxml开发语言
一.先写两个运行会失败的用例,为失败重跑做准备1.创建ReRunFailedTest类packagetestlistener;importorg.junit.Assert;importorg.testng.annotations
- maven 执行testng.xml文件失败解决问题
dayo9317
java开发工具
在pom.xml中配置了testng的依赖后,在surefire-plugin中又配置了suitexmlfiles指向testng.xml文件,但是使用mvntest运行时,没有运行testng.xml中指定的用例,导致该问题的原因是标签的大小写问题,没有严格规范的写suiteXmlFiles,应当注意每一个字母的大小写转载于:https://www.cnblogs.com/woniu123/p/
- Maven插件学习(二)——测试插件maven-surefire-pluigin
螺旋小蜗
Maven插件maven学习maven插件
1、插件简介maven-surefire-plugin测试运行器,能很好的兼容JUnit3Junit4以及TestNG,Maven在构件执行到特定生命周期阶段的时候,通过该插件来执行JUnit或者TestNG的测试用例,test阶段与该插件的test目标相绑定,是Maven内置的绑定,默认情况test目标会自动执行测试源码路径下所有符合一组命名模式的测试类。这组模式为:**/Test*.java:
- 2025年主流测试框架趋势
lifewange
Python自动化测试自动化
1.单元测试框架Pythonunittest:内置库,适合简单测试。pytest:更灵活,支持参数化测试和插件扩展。JavaJUnit:行业标准,支持注解和断言。TestNG:支持并行测试和更复杂的测试配置。JavaScriptJest:Facebook出品,内置Mock和快照测试,适合React。Mocha:灵活,需搭配断言库(如Chai)。2.端到端(E2E)测试工具Web应用Selenium
- 《2025软件测试工程师面试》接口框架TestNg篇
悠然的笔记本
面试职场和发展
TestNG面试题TestNG代表”测试下一代”。它是Credricbeust开发的用于Java编程语言的自动化测试框架,它是从JUnit框架得到启发而来的。TestNG包含JUnit框架的所有功能,但还包含一些其他功能,这些功能使TestNG更加强大。Testng框架的特点支持测试方法的依赖、灵活的测试配置、丰富的注解支持等适用于需要
- Spock框架:让单元测试更优雅的高效武器
没什么技术
javaspock
前言:为什么选择Spock?在软件开发领域,单元测试是保证代码质量的基石。但传统的JUnit/TestNG测试框架在面对复杂测试场景时,往往会显得力不从心。Spock框架作为新一代测试框架的佼佼者,以其独特的BDD(行为驱动开发)风格和GroovyDSL语法,正在成为Java/Kotlin开发者的新宠。本文将带你全面认识这个让测试代码变得优雅高效的利器!一、Spock框架初探1.1什么是Spock
- Java和SQL测试、性能监控中常用工具
2301_79306982
javasqlselenium单元测试压力测试集成测试
下面我会详细列举一些在Java和SQL测试、调试、性能监控中常用的工具,并结合项目中提到的各个技术点说明如何选择合适的工具和方法。一、Java项目常用的测试、调试与性能监控工具单元测试与集成测试:JUnit/TestNG:用于编写单元测试和集成测试。比如在SpringBoot项目中,可以使用JUnit对各个服务进行功能测试。Mockito:用于模拟依赖项,帮助隔离单元测试时的环境。静态代码分析:S
- 持续集成环境问题汇总(基于:java + testng + httpclient + allure + git + gitlab + jenkins + pipeline + maven + harb...
全栈测试笔记
jenkinsjavacigitgitlab
说明包含前期调试遇到的问题idea中,命令执行testng.xml,报错PleaserefertoD:\myjava\apiAutoTest\target\surefire-reportsfortheindividualtestresults.参考:https://www.cnblogs.com/uncleyong/p/16705982.html无法连接仓库:Hostkeyverification
- 基于Jenkins+Maven+Java+HttpClient+TestNG+Git+Allure的持续集成测试框架搭建方案(自己写和Ai对比)
宁宁可可
javamaven
手动自己写的:JavaWeb接口自动化测试总篇:基于Jenkins+Maven+Java+httpClients+TestNg+Git+Allure的持续集成测试框架AI生成的:以下是基于Jenkins+Maven+Java+HttpClient+TestNG+Git+Allure的持续集成测试框架搭建方案,分为框架设计和实施步骤两大部分:一、框架设计1.技术栈分工组件作用Jenkins持续集成服
- Angular-hello world
杨晓风-linda
angular.js前端javascript
环境搭建-安装angular-cli用npm安装typescript和typingsnpminstall-gtypescripttypings安装angular-clnpminstall-gangular-cli@latestngnewProjectName//ProjectName为你的项目名,用此命令建立基本文件,然后强制终止cdProjectNamecnpminstall//下载node-m
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http