举例一个接口测试的常见流程

1) 发送接口请求
2) 断言接口响应状态是不是200 OK
3) 断言接口的响应时间低于某一个值(看情况,不是必选)
4) 断言响应数据是否正确,一般的做法是判断某一个值是否相等或者包含关系

我主要接触的都是json格式返回体

只要加一个JSONObject即可,通过对返回体中的值和预期值做断言,

若断言全部通过,则用例pass

若断言有一个未通过,则用例失败

https://github.com/JasmineQian/API_JSON_Java.git

补充一下testNG中断言的用法

Assert.assertEquals 各种数据格式类型

public static void assertEquals(int actual, int expected, String message) {
assertEquals((Object)actual, (Object)expected, message);
}
public static void assertEquals(int actual, int expected) {
assertEquals((int)actual, (int)expected, (String)null);
}

源码如下

  1. //
  2. // Source code recreated from a .class file by IntelliJ IDEA
  3. // (powered by Fernflower decompiler)
  4. //
  5.  
  6. package org.testng;
  7.  
  8. import java.lang.reflect.Array;
  9. import java.util.Arrays;
  10. import java.util.Collection;
  11. import java.util.Iterator;
  12. import java.util.List;
  13. import java.util.Map;
  14. import java.util.Set;
  15. import java.util.Map.Entry;
  16. import org.testng.collections.Lists;
  17. import org.testng.internal.EclipseInterface;
  18.  
  19. public class Assert {
  20. protected Assert() {
  21. }
  22.  
  23. public static void assertTrue(boolean condition, String message) {
  24. if (!condition) {
  25. failNotEquals(condition, Boolean.TRUE, message);
  26. }
  27.  
  28. }
  29.  
  30. public static void assertTrue(boolean condition) {
  31. assertTrue(condition, (String)null);
  32. }
  33.  
  34. public static void assertFalse(boolean condition, String message) {
  35. if (condition) {
  36. failNotEquals(condition, Boolean.FALSE, message);
  37. }
  38.  
  39. }
  40.  
  41. public static void assertFalse(boolean condition) {
  42. assertFalse(condition, (String)null);
  43. }
  44.  
  45. public static void fail(String message, Throwable realCause) {
  46. AssertionError ae = new AssertionError(message);
  47. ae.initCause(realCause);
  48. throw ae;
  49. }
  50.  
  51. public static void fail(String message) {
  52. throw new AssertionError(message);
  53. }
  54.  
  55. public static void fail() {
  56. fail((String)null);
  57. }
  58.  
  59. public static void assertEquals(Object actual, Object expected, String message) {
  60. if (expected != null || actual != null) {
  61. if (expected != null) {
  62. if (expected.getClass().isArray()) {
  63. assertArrayEquals(actual, expected, message);
  64. return;
  65. }
  66.  
  67. if (expected.equals(actual)) {
  68. return;
  69. }
  70. }
  71.  
  72. failNotEquals(actual, expected, message);
  73. }
  74. }
  75.  
  76. private static void assertArrayEquals(Object actual, Object expected, String message) {
  77. if (actual.getClass().isArray()) {
  78. int expectedLength = Array.getLength(expected);
  79. if (expectedLength == Array.getLength(actual)) {
  80. for(int i = 0; i < expectedLength; ++i) {
  81. Object _actual = Array.get(actual, i);
  82. Object _expected = Array.get(expected, i);
  83.  
  84. try {
  85. assertEquals(_actual, _expected);
  86. } catch (AssertionError var8) {
  87. failNotEquals(actual, expected, message == null ? "" : message + " (values as index " + i + " are not the same)");
  88. }
  89. }
  90.  
  91. return;
  92. }
  93.  
  94. failNotEquals(Array.getLength(actual), expectedLength, message == null ? "" : message + " (Array lengths are not the same)");
  95. }
  96.  
  97. failNotEquals(actual, expected, message);
  98. }
  99.  
  100. public static void assertEquals(Object actual, Object expected) {
  101. assertEquals((Object)actual, (Object)expected, (String)null);
  102. }
  103.  
  104. public static void assertEquals(String actual, String expected, String message) {
  105. assertEquals((Object)actual, (Object)expected, message);
  106. }
  107.  
  108. public static void assertEquals(String actual, String expected) {
  109. assertEquals((String)actual, (String)expected, (String)null);
  110. }
  111.  
  112. public static void assertEquals(double actual, double expected, double delta, String message) {
  113. if (Double.isInfinite(expected)) {
  114. if (expected != actual) {
  115. failNotEquals(new Double(actual), new Double(expected), message);
  116. }
  117. } else if (Math.abs(expected - actual) > delta) {
  118. failNotEquals(new Double(actual), new Double(expected), message);
  119. }
  120.  
  121. }
  122.  
  123. public static void assertEquals(double actual, double expected, double delta) {
  124. assertEquals(actual, expected, delta, (String)null);
  125. }
  126.  
  127. public static void assertEquals(float actual, float expected, float delta, String message) {
  128. if (Float.isInfinite(expected)) {
  129. if (expected != actual) {
  130. failNotEquals(new Float(actual), new Float(expected), message);
  131. }
  132. } else if (Math.abs(expected - actual) > delta) {
  133. failNotEquals(new Float(actual), new Float(expected), message);
  134. }
  135.  
  136. }
  137.  
  138. public static void assertEquals(float actual, float expected, float delta) {
  139. assertEquals(actual, expected, delta, (String)null);
  140. }
  141.  
  142. public static void assertEquals(long actual, long expected, String message) {
  143. assertEquals((Object)actual, (Object)expected, message);
  144. }
  145.  
  146. public static void assertEquals(long actual, long expected) {
  147. assertEquals(actual, expected, (String)null);
  148. }
  149.  
  150. public static void assertEquals(boolean actual, boolean expected, String message) {
  151. assertEquals((Object)actual, (Object)expected, message);
  152. }
  153.  
  154. public static void assertEquals(boolean actual, boolean expected) {
  155. assertEquals(actual, expected, (String)null);
  156. }
  157.  
  158. public static void assertEquals(byte actual, byte expected, String message) {
  159. assertEquals((Object)actual, (Object)expected, message);
  160. }
  161.  
  162. public static void assertEquals(byte actual, byte expected) {
  163. assertEquals((byte)actual, (byte)expected, (String)null);
  164. }
  165.  
  166. public static void assertEquals(char actual, char expected, String message) {
  167. assertEquals((Object)actual, (Object)expected, message);
  168. }
  169.  
  170. public static void assertEquals(char actual, char expected) {
  171. assertEquals((char)actual, (char)expected, (String)null);
  172. }
  173.  
  174. public static void assertEquals(short actual, short expected, String message) {
  175. assertEquals((Object)actual, (Object)expected, message);
  176. }
  177.  
  178. public static void assertEquals(short actual, short expected) {
  179. assertEquals((short)actual, (short)expected, (String)null);
  180. }
  181.  
  182. public static void assertEquals(int actual, int expected, String message) {
  183. assertEquals((Object)actual, (Object)expected, message);
  184. }
  185.  
  186. public static void assertEquals(int actual, int expected) {
  187. assertEquals((int)actual, (int)expected, (String)null);
  188. }
  189.  
  190. public static void assertNotNull(Object object) {
  191. assertNotNull(object, (String)null);
  192. }
  193.  
  194. public static void assertNotNull(Object object, String message) {
  195. if (object == null) {
  196. String formatted = "";
  197. if (message != null) {
  198. formatted = message + " ";
  199. }
  200.  
  201. fail(formatted + "expected object to not be null");
  202. }
  203.  
  204. assertTrue(object != null, message);
  205. }
  206.  
  207. public static void assertNull(Object object) {
  208. assertNull(object, (String)null);
  209. }
  210.  
  211. public static void assertNull(Object object, String message) {
  212. if (object != null) {
  213. failNotSame(object, (Object)null, message);
  214. }
  215.  
  216. }
  217.  
  218. public static void assertSame(Object actual, Object expected, String message) {
  219. if (expected != actual) {
  220. failNotSame(actual, expected, message);
  221. }
  222. }
  223.  
  224. public static void assertSame(Object actual, Object expected) {
  225. assertSame(actual, expected, (String)null);
  226. }
  227.  
  228. public static void assertNotSame(Object actual, Object expected, String message) {
  229. if (expected == actual) {
  230. failSame(actual, expected, message);
  231. }
  232.  
  233. }
  234.  
  235. public static void assertNotSame(Object actual, Object expected) {
  236. assertNotSame(actual, expected, (String)null);
  237. }
  238.  
  239. private static void failSame(Object actual, Object expected, String message) {
  240. String formatted = "";
  241. if (message != null) {
  242. formatted = message + " ";
  243. }
  244.  
  245. fail(formatted + EclipseInterface.ASSERT_LEFT2 + expected + EclipseInterface.ASSERT_MIDDLE + actual + EclipseInterface.ASSERT_RIGHT);
  246. }
  247.  
  248. private static void failNotSame(Object actual, Object expected, String message) {
  249. String formatted = "";
  250. if (message != null) {
  251. formatted = message + " ";
  252. }
  253.  
  254. fail(formatted + EclipseInterface.ASSERT_LEFT + expected + EclipseInterface.ASSERT_MIDDLE + actual + EclipseInterface.ASSERT_RIGHT);
  255. }
  256.  
  257. private static void failNotEquals(Object actual, Object expected, String message) {
  258. fail(format(actual, expected, message));
  259. }
  260.  
  261. static String format(Object actual, Object expected, String message) {
  262. String formatted = "";
  263. if (null != message) {
  264. formatted = message + " ";
  265. }
  266.  
  267. return formatted + EclipseInterface.ASSERT_LEFT + expected + EclipseInterface.ASSERT_MIDDLE + actual + EclipseInterface.ASSERT_RIGHT;
  268. }
  269.  
  270. public static void assertEquals(Collection<?> actual, Collection<?> expected) {
  271. assertEquals((Collection)actual, (Collection)expected, (String)null);
  272. }
  273.  
  274. public static void assertEquals(Collection<?> actual, Collection<?> expected, String message) {
  275. if (actual != expected) {
  276. if (actual == null || expected == null) {
  277. if (message != null) {
  278. fail(message);
  279. } else {
  280. fail("Collections not equal: expected: " + expected + " and actual: " + actual);
  281. }
  282. }
  283.  
  284. assertEquals(actual.size(), expected.size(), message + ": lists don't have the same size");
  285. Iterator<?> actIt = actual.iterator();
  286. Iterator<?> expIt = expected.iterator();
  287. int i = -1;
  288.  
  289. while(actIt.hasNext() && expIt.hasNext()) {
  290. ++i;
  291. Object e = expIt.next();
  292. Object a = actIt.next();
  293. String explanation = "Lists differ at element [" + i + "]: " + e + " != " + a;
  294. String errorMessage = message == null ? explanation : message + ": " + explanation;
  295. assertEquals(a, e, errorMessage);
  296. }
  297.  
  298. }
  299. }
  300.  
  301. public static void assertEquals(Iterator<?> actual, Iterator<?> expected) {
  302. assertEquals((Iterator)actual, (Iterator)expected, (String)null);
  303. }
  304.  
  305. public static void assertEquals(Iterator<?> actual, Iterator<?> expected, String message) {
  306. if (actual != expected) {
  307. if (actual == null || expected == null) {
  308. if (message != null) {
  309. fail(message);
  310. } else {
  311. fail("Iterators not equal: expected: " + expected + " and actual: " + actual);
  312. }
  313. }
  314.  
  315. int i = -1;
  316.  
  317. while(actual.hasNext() && expected.hasNext()) {
  318. ++i;
  319. Object e = expected.next();
  320. Object a = actual.next();
  321. String explanation = "Iterators differ at element [" + i + "]: " + e + " != " + a;
  322. String errorMessage = message == null ? explanation : message + ": " + explanation;
  323. assertEquals(a, e, errorMessage);
  324. }
  325.  
  326. String explanation;
  327. String errorMessage;
  328. if (actual.hasNext()) {
  329. explanation = "Actual iterator returned more elements than the expected iterator.";
  330. errorMessage = message == null ? explanation : message + ": " + explanation;
  331. fail(errorMessage);
  332. } else if (expected.hasNext()) {
  333. explanation = "Expected iterator returned more elements than the actual iterator.";
  334. errorMessage = message == null ? explanation : message + ": " + explanation;
  335. fail(errorMessage);
  336. }
  337.  
  338. }
  339. }
  340.  
  341. public static void assertEquals(Iterable<?> actual, Iterable<?> expected) {
  342. assertEquals((Iterable)actual, (Iterable)expected, (String)null);
  343. }
  344.  
  345. public static void assertEquals(Iterable<?> actual, Iterable<?> expected, String message) {
  346. if (actual != expected) {
  347. if (actual == null || expected == null) {
  348. if (message != null) {
  349. fail(message);
  350. } else {
  351. fail("Iterables not equal: expected: " + expected + " and actual: " + actual);
  352. }
  353. }
  354.  
  355. Iterator<?> actIt = actual.iterator();
  356. Iterator<?> expIt = expected.iterator();
  357. assertEquals(actIt, expIt, message);
  358. }
  359. }
  360.  
  361. public static void assertEquals(Object[] actual, Object[] expected, String message) {
  362. if (actual != expected) {
  363. if (actual == null && expected != null || actual != null && expected == null) {
  364. if (message != null) {
  365. fail(message);
  366. } else {
  367. fail("Arrays not equal: " + Arrays.toString(expected) + " and " + Arrays.toString(actual));
  368. }
  369. }
  370.  
  371. assertEquals((Collection)Arrays.asList(actual), (Collection)Arrays.asList(expected), message);
  372. }
  373. }
  374.  
  375. public static void assertEqualsNoOrder(Object[] actual, Object[] expected, String message) {
  376. if (actual != expected) {
  377. if (actual == null && expected != null || actual != null && expected == null) {
  378. failAssertNoEqual("Arrays not equal: " + Arrays.toString(expected) + " and " + Arrays.toString(actual), message);
  379. }
  380.  
  381. if (actual.length != expected.length) {
  382. failAssertNoEqual("Arrays do not have the same size:" + actual.length + " != " + expected.length, message);
  383. }
  384.  
  385. List<Object> actualCollection = Lists.newArrayList();
  386. Object[] arr$ = actual;
  387. int len$ = actual.length;
  388.  
  389. int i$;
  390. Object o;
  391. for(i$ = 0; i$ < len$; ++i$) {
  392. o = arr$[i$];
  393. actualCollection.add(o);
  394. }
  395.  
  396. arr$ = expected;
  397. len$ = expected.length;
  398.  
  399. for(i$ = 0; i$ < len$; ++i$) {
  400. o = arr$[i$];
  401. actualCollection.remove(o);
  402. }
  403.  
  404. if (actualCollection.size() != 0) {
  405. failAssertNoEqual("Arrays not equal: " + Arrays.toString(expected) + " and " + Arrays.toString(actual), message);
  406. }
  407.  
  408. }
  409. }
  410.  
  411. private static void failAssertNoEqual(String defaultMessage, String message) {
  412. if (message != null) {
  413. fail(message);
  414. } else {
  415. fail(defaultMessage);
  416. }
  417.  
  418. }
  419.  
  420. public static void assertEquals(Object[] actual, Object[] expected) {
  421. assertEquals((Object[])actual, (Object[])expected, (String)null);
  422. }
  423.  
  424. public static void assertEqualsNoOrder(Object[] actual, Object[] expected) {
  425. assertEqualsNoOrder(actual, expected, (String)null);
  426. }
  427.  
  428. public static void assertEquals(byte[] actual, byte[] expected) {
  429. assertEquals(actual, expected, "");
  430. }
  431.  
  432. public static void assertEquals(byte[] actual, byte[] expected, String message) {
  433. if (expected != actual) {
  434. if (null == expected) {
  435. fail("expected a null array, but not null found. " + message);
  436. }
  437.  
  438. if (null == actual) {
  439. fail("expected not null array, but null found. " + message);
  440. }
  441.  
  442. assertEquals(actual.length, expected.length, "arrays don't have the same size. " + message);
  443.  
  444. for(int i = 0; i < expected.length; ++i) {
  445. if (expected[i] != actual[i]) {
  446. fail("arrays differ firstly at element [" + i + "]; " + "expected value is <" + expected[i] + "> but was <" + actual[i] + ">. " + message);
  447. }
  448. }
  449.  
  450. }
  451. }
  452.  
  453. public static void assertEquals(Set<?> actual, Set<?> expected) {
  454. assertEquals((Set)actual, (Set)expected, (String)null);
  455. }
  456.  
  457. public static void assertEquals(Set<?> actual, Set<?> expected, String message) {
  458. if (actual != expected) {
  459. if (actual == null || expected == null) {
  460. if (message == null) {
  461. fail("Sets not equal: expected: " + expected + " and actual: " + actual);
  462. } else {
  463. failNotEquals(actual, expected, message);
  464. }
  465. }
  466.  
  467. if (!actual.equals(expected)) {
  468. if (message == null) {
  469. fail("Sets differ: expected " + expected + " but got " + actual);
  470. } else {
  471. failNotEquals(actual, expected, message);
  472. }
  473. }
  474.  
  475. }
  476. }
  477.  
  478. public static void assertEquals(Map<?, ?> actual, Map<?, ?> expected) {
  479. if (actual != expected) {
  480. if (actual == null || expected == null) {
  481. fail("Maps not equal: expected: " + expected + " and actual: " + actual);
  482. }
  483.  
  484. if (actual.size() != expected.size()) {
  485. fail("Maps do not have the same size:" + actual.size() + " != " + expected.size());
  486. }
  487.  
  488. Set<?> entrySet = actual.entrySet();
  489. Iterator iterator = entrySet.iterator();
  490.  
  491. while(iterator.hasNext()) {
  492. Entry<?, ?> entry = (Entry)iterator.next();
  493. Object key = entry.getKey();
  494. Object value = entry.getValue();
  495. Object expectedValue = expected.get(key);
  496. assertEquals(value, expectedValue, "Maps do not match for key:" + key + " actual:" + value + " expected:" + expectedValue);
  497. }
  498.  
  499. }
  500. }
  501.  
  502. public static void assertNotEquals(Object actual1, Object actual2, String message) {
  503. boolean fail = false;
  504.  
  505. try {
  506. assertEquals(actual1, actual2);
  507. fail = true;
  508. } catch (AssertionError var5) {
  509. ;
  510. }
  511.  
  512. if (fail) {
  513. fail(message);
  514. }
  515.  
  516. }
  517.  
  518. public static void assertNotEquals(Object actual1, Object actual2) {
  519. assertNotEquals((Object)actual1, (Object)actual2, (String)null);
  520. }
  521.  
  522. static void assertNotEquals(String actual1, String actual2, String message) {
  523. assertNotEquals((Object)actual1, (Object)actual2, message);
  524. }
  525.  
  526. static void assertNotEquals(String actual1, String actual2) {
  527. assertNotEquals((String)actual1, (String)actual2, (String)null);
  528. }
  529.  
  530. static void assertNotEquals(long actual1, long actual2, String message) {
  531. assertNotEquals((Object)actual1, (Object)actual2, message);
  532. }
  533.  
  534. static void assertNotEquals(long actual1, long actual2) {
  535. assertNotEquals(actual1, actual2, (String)null);
  536. }
  537.  
  538. static void assertNotEquals(boolean actual1, boolean actual2, String message) {
  539. assertNotEquals((Object)actual1, (Object)actual2, message);
  540. }
  541.  
  542. static void assertNotEquals(boolean actual1, boolean actual2) {
  543. assertNotEquals(actual1, actual2, (String)null);
  544. }
  545.  
  546. static void assertNotEquals(byte actual1, byte actual2, String message) {
  547. assertNotEquals((Object)actual1, (Object)actual2, message);
  548. }
  549.  
  550. static void assertNotEquals(byte actual1, byte actual2) {
  551. assertNotEquals((byte)actual1, (byte)actual2, (String)null);
  552. }
  553.  
  554. static void assertNotEquals(char actual1, char actual2, String message) {
  555. assertNotEquals((Object)actual1, (Object)actual2, message);
  556. }
  557.  
  558. static void assertNotEquals(char actual1, char actual2) {
  559. assertNotEquals((char)actual1, (char)actual2, (String)null);
  560. }
  561.  
  562. static void assertNotEquals(short actual1, short actual2, String message) {
  563. assertNotEquals((Object)actual1, (Object)actual2, message);
  564. }
  565.  
  566. static void assertNotEquals(short actual1, short actual2) {
  567. assertNotEquals((short)actual1, (short)actual2, (String)null);
  568. }
  569.  
  570. static void assertNotEquals(int actual1, int actual2, String message) {
  571. assertNotEquals((Object)actual1, (Object)actual2, message);
  572. }
  573.  
  574. static void assertNotEquals(int actual1, int actual2) {
  575. assertNotEquals((int)actual1, (int)actual2, (String)null);
  576. }
  577.  
  578. public static void assertNotEquals(float actual1, float actual2, float delta, String message) {
  579. boolean fail = false;
  580.  
  581. try {
  582. assertEquals(actual1, actual2, delta, message);
  583. fail = true;
  584. } catch (AssertionError var6) {
  585. ;
  586. }
  587.  
  588. if (fail) {
  589. fail(message);
  590. }
  591.  
  592. }
  593.  
  594. public static void assertNotEquals(float actual1, float actual2, float delta) {
  595. assertNotEquals(actual1, actual2, delta, (String)null);
  596. }
  597.  
  598. public static void assertNotEquals(double actual1, double actual2, double delta, String message) {
  599. boolean fail = false;
  600.  
  601. try {
  602. assertEquals(actual1, actual2, delta, message);
  603. fail = true;
  604. } catch (AssertionError var9) {
  605. ;
  606. }
  607.  
  608. if (fail) {
  609. fail(message);
  610. }
  611.  
  612. }
  613.  
  614. public static void assertNotEquals(double actual1, double actual2, double delta) {
  615. assertNotEquals(actual1, actual2, delta, (String)null);
  616. }
  617. }

  

API接口自动化之2 处理http请求的返回体,对返回体做校验的更多相关文章

  1. python接口自动化(十)--post请求四种传送正文方式(详解)

    简介 post请求我在python接口自动化(八)--发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等.我们要知道post请求四种传送正文方式首先需要先 ...

  2. python+pytest接口自动化(4)-requests发送get请求

    python中用于请求http接口的有自带的urllib和第三方库requests,但 urllib 写法稍微有点繁琐,所以在进行接口自动化测试过程中,一般使用更为简洁且功能强大的 requests ...

  3. API接口自动化之1 常见的http请求

    常见的HTTP请求 就我所想到的,目前如果想做http/https请求接口自动户化,要处理的一些区别 get请求post请求 httphttps 单个值键值对键值对的搭配方式 POST请求体,后续讲一 ...

  4. API接口自动化之3 同一个war包中多个接口做自动化测试

    同一个war包中多个接口做自动化测试 一个接口用一个测试类,每个测试用例如下,比如下面是4个测试用例,每个详细的测试用例中含有请求入参,返回体校验,以此来判断每条测试用例是否通过 一个war包中,若含 ...

  5. python接口自动化一(发送get请求)

    一.环境安装 1.用pip安装requests模块 >>pip install requests 二.get请求 1.导入requests后,用get方法就能直接访问url地址,如:htt ...

  6. Python接口自动化【requests处理Token请求】

    首先说一下使用python模拟登录或注册时,对于带token的页面怎么登录注册模拟的思路: 1.对于带token的页面,需要先从最开始的页面获取合法token 2.然后使用获取到的合法token进行后 ...

  7. python接口自动化-发xml格式post请求

    前言 post请求相对于get请求多一个body部分,body部分常见的数据类型有以下四种(注意是常见的,并不是只有4种) application/x-www-form-urlencoded appl ...

  8. Jenkins 对项目持续集成的配置之二 API接口自动化 Ant+Jmeter

    先介绍一下Ant+Jmeter 略 我的另一篇文章有讲在linux上部署ant + jmeter以满足CI持续化集成 https://www.cnblogs.com/qianjinyan/p/9067 ...

  9. REST API 自动化测试 利器Rest Assured(API接口自动化测试框架体系)

    现在,越来越多的 Web 应用转向了 RESTful 的架构,很多产品和应用暴露给用户的往往就是一组 REST API,这样有一个好处,用户可以根据需要,调用不同的 API,整合出自己的应用出来.从这 ...

随机推荐

  1. SVM入门——线性分类器的求解,核函数

    一.问题的描述 从最一般的定义上说,一个求最小值的问题就是一个优化问题(也叫寻优问题,更文绉绉的叫法是规划——Programming),它同样由两部分组成,目标函数和约束条件,可以用下面的式子表示: ...

  2. nodejs 将网上的图片下载到本地文件

    var request = require('request'); var fs = require('fs'); var img_src = 'https://www.baidu.com/img/b ...

  3. 最新可靠好用的DNS服务器地址汇总

    如果修改DNS服务器地址就可以访问google等服务,你还等什么?使用免费DNS解析服务除了去掉了运营商的各种广告,还有个最大的好处就是不会重定向或者过滤用户所访问的地址,这样就防止了很多网站被电信. ...

  4. Linear Regression Using Least Squares Method 代码实现

    1. 原理 2. Octave function theta = leastSquaresMethod(X, y) theta = pinv(X' * X) * X' * y; 3. Python # ...

  5. codefirst configuration

    codefirst 书写配置类,用于entity与数据库中表或view映射 1.对应表或视图都用this.ToTable("SimpleCompanyLoanView", &quo ...

  6. JSON—序列化

    表单数据的序列化   用SerializeArray()将有效控件序列化为JSON对象数组? 包含name和value两个属性 SerializeArray()检测一组表单元素中的有效控件? 1.没有 ...

  7. no-siteapp 和 no-transform

    简单的说,是禁止转码 . 举个通俗的例子. 你建了一栋房子(网站),百度说我给你做个大门,但是大门上要有我的广告 你不愿意,就建立了一条路叫no-transform 别人去你家走这条路就行了 后来百度 ...

  8. ORTP编译为静态库的问题

    项目中需要用到ORTP,我采用的编译环境是 VC2013,当我在项目设置中将设置为静态库是,发现没有导出函数,比如在需要连接 oRTP.lib库时提示 找不到 ORTP_init; 解决办法是 :在O ...

  9. linux常用命令:ping 命令

    Linux系统的ping 命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”.不能打开网页时会说“你先ping网关地 址192.168.1.1试试 ...

  10. Linux基础命令---tune2fs

    tune2fs tune2fs允许系统管理员在Linux ext2.ext3或ext4文件系统上调整各种可调的文件系统参数.这些选项的当前值可以使用-l选项显示,也可以通过使用dumpe2fs (8) ...