【001】接口测试-常用工具介绍和使用
目前了解到的几种工具如下:
工具 |
接口测试 |
多线程并发 |
压测 |
Postman |
√ |
暂无 |
× |
Poswotman |
还没了解 |
|
|
Jmeter |
√ |
√ |
√ |
Charles |
√ |
× |
× |
TestNG |
√ |
√ |
√ |
注意点:
1、检查接口文档
2、看看返回的数据结构是否一致。 结构对比 json-schema-validator.
3、逻辑是否正确(看看传参和返回是否一致)
1、postman
2、jmeter
3、抓包
4、testNG
需要基本的代码能力
以idea的maven管理项目为例:
1、pom文件引入对应的jar包
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.9.8</version>
<!-- <scope>test</scope>-->
</dependency>
2、引入插件testNG XML
为了自动生成xml文件
file——settings——plugins——搜索testNG XML——选中后点击ok,重启idea,搞定
3、新建Java的class,
然后可以适用相应的testNG注解啦。如下代码所示:
1 import org.testng.Assert;
2 import org.testng.annotations.AfterClass;
3 import org.testng.annotations.BeforeClass;
4 import org.testng.annotations.Test;
5
6 public class test1 {
7
8 @Test
9 public void abc1(){
10 System.out.println("testNG 1");
11 }
12 @Test
13 public void abcError(){
14 System.out.println(1/0);
15 }
16 @Test
17 // @Test(enabled = false)
18 public void abcEnable(){
19 System.out.println("是否能执行");
20 }
21 @Test
22 public void abc2(){
23 System.out.println("testNG 2");
24 }
25 @BeforeClass
26 public void beforeClass(){
27 System.out.println("beforeClass ");
28 }
29 @AfterClass
30 public void afterClass(){
31 System.out.println("beforeClass ");
32 }
33 // 分组
34 @Test(groups = {"group1"})
35 public void groups1(){
36 System.out.println("group1");
37 }
38 @Test(groups = {"group1"})
39 public void group11(){
40 System.out.println("group11");
41 }
42 @Test(groups = {"group2"})
43 public void groups2(){
44 System.out.println("group2");
45 }
46 @Test(groups = {"group2"})
47 public void group22(){
48 System.out.println("group2 2");
49 }
50
51 // 多线程
52 @Test(groups = {"group3"})
53 public void Thread1(){
54 System.out.println("Thread1");
55 }
56 @Test(groups = {"group3"})
57 public void Thread2(){
58 System.out.println("Thread 2");
59 }
60 // 断言
61 @Test(groups = {"group4"})
62 public void assert1(){
63 String str1="ydh";
64 String str2="ydh";
65 boolean bl1=!(str1.equals(str2));
66 boolean bl2=(str1.equals(str2));
67 Assert.assertEquals(str1,str2,"判断是否相等");
68 Assert.assertTrue(bl2,"判断是否为true");
69 Assert.assertFalse(bl1,"判断是否为false");
70 System.out.println("Thread 2");
71 }
72 }
可以直接在脚本运行某个方法,页可以通过生成的testng.xml文件来调用(其实自己页可以新建的)
xml代码如下:
这里需要强调的是test这个标签的name一定要和上面的类名对应起来(我这里的java文件较test1)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Test1">
<!-- preserve-order="true"表示顺序 thread-count="2"线程数-->
<test name="test1" preserve-order="true" thread-count="1">
<!-- <test name="test1">-->
<!-- <classes>-->
<!-- <class name="test1">-->
<!-- <methods>-->
<!-- <include name="abcEnable">-->
<!-- </include>-->
<!-- <include name="abc2"/>-->
<!-- </methods>-->
<!-- </class>-->
<!-- </classes>-->
<!--分组-->
<!-- <groups>-->
<!-- <run>-->
<!-- <include name="group1"></include>-->
<!-- </run>-->
<!-- </groups>-->
<!-- <classes>-->
<!-- <class name="test1"></class>-->
<!-- </classes>-->
<groups>
<run>
<include name="group4"></include>
</run>
</groups>
<classes>
<class name="test1"></class>
</classes>
</test>
</suite>