智能体测开Day56

Demo01Test

java 复制代码
package Day06;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.edge.EdgeDriver;
import org.testng.annotations.*;

import java.time.Duration;
import java.util.List;

public class Demo01Test {
    WebDriver driver;

    @BeforeMethod
    public void prepare(){
        driver = new EdgeDriver();
        driver.get("http://www.baidu.com");// 打开百度首页
        driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5)); // 设置隐式等待
    }
    @Test(groups = "smoke")
    public void test001() throws InterruptedException {
        System.out.println("输入搜索的内容,点击搜索,搜索结果正确");
        driver.findElement(By.id("chat-textarea")).sendKeys("java");

        WebElement e = driver.findElement(By.id("chat-textarea"));
        System.out.println(e.getAttribute("class"));
        System.out.println(e.getAttribute("placeholder"));
        Thread.sleep(3000);
    }
    @Test
    public void test002() throws InterruptedException {
        driver.get("http://www.baidu.com");
        WebElement e = driver.findElement(By.id("s-top-left")); // 左上角的工具栏
        List<WebElement> es = e.findElements(By.tagName("a"));
        int i = 0;
        for (WebElement a : es){
            System.out.println(a.getText());
            System.out.println(a.getAttribute("href"));
            if (i<3){
                a.click();
            }
            i++;
        }
        Thread.sleep(3000);
    }
    @AfterMethod
    public void clear(){
        driver.quit();
//        driver.close(); // 整个浏览器关闭
    }
}

Demo02Test

java 复制代码
package Day06;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import org.testng.annotations.Test;

import java.util.ArrayList;
import java.util.List;

/*
* json
*       jackson
*       fastjson    阿里开源的json解析库
*
*       json格式的字符串----解析成java中的对象。方便在代码中处理。反序列化
*       java中的对象----解析成json格式的字符串,方便传输。序列化
* */
public class Demo02Test {
    @Test
    public void test001(){
        User user1 = new User("Tony",21,"17734694395");
        System.out.println(user1); //User{name='Tony', age=21, phone='17734694395'}
        // {"age":21,"name":"Tony","phone":"17734694395"}
        String a = JSON.toJSONString(user1);
        System.out.println(a);

        User user2 = new User("Tony");
        System.out.println(user2);
        String b = JSON.toJSONString(user2); // {"age":0,"name":"Tony"}
        System.out.println(b);

        User user3 = new User("jack",10,"13919232051");
        List<User> users = new ArrayList<>();
        users.add(user1);
        users.add(user2);
        users.add(user3);

        JSONArray jsonArray = new JSONArray(users);
        String c = JSON.toJSONString(jsonArray);
        // [{"age":21,"name":"Tony","phone":"17734694395"},{"age":0,"name":"Tony"},{"age":10,"name":"jack","phone":"13919232051"}]
        System.out.println(c); // [{},{},{}]
    }
    @Test
    public void test002(){
        String a = "{\"age\":21,\"name\":\"Tony\",\"phone\":\"17734694395\"}";
        User u = JSON.parseObject(a,User.class);
        System.out.println(u.getPhone());
        System.out.println(u.getAge());
        System.out.println(u.getName());

        String b = "[{\"age\":21,\"name\":\"Tony\",\"phone\":\"17734694395\"},{\"age\":0,\"name\":\"Tony\"},{\"age\":10,\"name\":\"jack\",\"phone\":\"13919232051\"}]";
        List<User> users = JSON.parseArray(b,User.class);
        for (User uu : users){
            System.out.println(uu.getName());
        }
    }
}

class  User{
    String name;
    int age;
    String phone;

    //构造方法。tostring、get、set方法

    public User(String name){
        this.name = name;
    }

    public User(String name, int age, String phone) {
        this.name = name;
        this.age = age;
        this.phone = phone;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", phone='" + phone + '\'' +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
}

Demo03Test

java 复制代码
package Day06;

import com.alibaba.fastjson2.JSON;
import okhttp3.*;
import org.testng.Assert;
import org.testng.annotations.Test;

import java.io.IOException;

public class Demo03Test {
    // 金融项目,注册-get、登录-post 表单
    // 线性代码

    public static final String ENV = "http://127.0.0.1:8088/"; // 测试环境 常量 全大写字母 下划线
    public static final String REGISTER = ENV + "futureloan/mvc/api/member/register";
    public static final String LOGIN = ENV + "futureloan/mvc/api/member/login";
    @Test
    public void test001() throws IOException {
        System.out.println("注册接口,正确的手机号,错误密码(5位),注册失败");
        HttpUrl url = HttpUrl.parse(REGISTER).newBuilder().
                addQueryParameter("mobilephone","18294752353")
                .addQueryParameter("pwd","12345")
                .addQueryParameter("regname","hello world").build(); // 创建url
        Request request = new Request.Builder().url(url).get().build(); // 创建请求

        OkHttpClient client = new OkHttpClient();

        Response r = client.newCall(request).execute(); //发送请求
        String body = r.body().string();
        // {"status":0,"code":"20108","data":null,"msg":"密码长度必须为6~18"}
        System.out.println(body);
        Assert.assertTrue(body.contains("密码长度必须为6~18"));

        JinRongResponse expect = new JinRongResponse(0,"20108",null,"密码长度必须为6~18");
        JinRongResponse real = JSON.parseObject(body,JinRongResponse.class); // 实际结果
        Assert.assertEquals(real.getCode(),expect.getCode());
        Assert.assertEquals(real.getMsg(),expect.getMsg());
        Assert.assertEquals(real.getStatus(),expect.getStatus());
    }

    @Test(groups = "smoke")
    public void test002() throws IOException {
        System.out.println("登录接口(post),输入正确的手机号,正确的密码,登录成功");
        RequestBody form = new FormBody.Builder()
                .add("mobilephone","17734694395")
                .add("pwd","123456").build(); // 创建一个body

        Request request = new Request.Builder().url(LOGIN).post(form).build(); // 创建请求

        OkHttpClient client = new OkHttpClient();
        Response r = client.newCall(request).execute(); //发送请求
        String body = r.body().string();
        System.out.println(body);
        Assert.assertTrue(body.contains("登录成功"));

        JinRongResponse expect = new JinRongResponse(1,"10001",null,"登录成功");
        JinRongResponse real = JSON.parseObject(body,JinRongResponse.class); // 实际结果
        Assert.assertEquals(real.getCode(),expect.getCode());
        Assert.assertEquals(real.getMsg(),expect.getMsg());
        Assert.assertEquals(real.getStatus(),expect.getStatus());
    }

}

class  JinRongResponse{
    int status;
    String code;
    String data;
    String msg;

    // 构造方法、toString、get、set方法


    public JinRongResponse(int status, String code, String data, String msg) {
        this.status = status;
        this.code = code;
        this.data = data;
        this.msg = msg;
    }

    @Override
    public String toString() {
        return "JinRongResponse{" +
                "status=" + status +
                ", code='" + code + '\'' +
                ", data='" + data + '\'' +
                ", msg='" + msg + '\'' +
                '}';
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}

全量测试.xml

XML 复制代码
<suite name="金融项目全量自动化" parallel="method" thread-count="5">
    <test name="界面自动化">
        <classes>
            <class name = "Day06.Demo01Test"/>
            <class name = "Day06.Demo02Test"/>
        </classes>
    </test>
    <test name="接口自动化">
        <classes>
            <class name = "Day06.Demo03Test"/>
        </classes>
    </test>
    <test name="其他测试">
        <classes>
            <class name = "Day05.Demo03Test"/>
            <class name = "Day05.Demo04Test"/>
        </classes>
    </test>
</suite>

冒烟测试.xml

XML 复制代码
<suite name="冒烟测试" parallel="method" thread-count="5">
    <test name="冒烟">
        <classes>
            <class name = "Day06.Demo01Test"/>
            <class name = "Day06.Demo02Test"/>
            <class name = "Day06.Demo02Test"/>
            <class name = "Day05.Demo03Test"/>
            <class name = "Day05.Demo04Test"/>
        </classes>
        <groups>
            <run>
                <include name="smoke"/>
            </run>
        </groups>
    </test>
</suite>
相关推荐
信誓旦旦的程序猿14 小时前
【量化系统从零构建 #04】存储设计:选型·建库·交易日历
java·人工智能·python·股票数据api·股票数据·股票数据api接口·股票api数据接口
yurenpai(27届找实习中)14 小时前
Java 10 的 var 为什么不能随便用?从订单汇总看懂类型推断与泛型陷阱
java·开发语言·java18
Flynt15 小时前
把公司项目迁到 Spring Boot 4.0:编译通过只是开始
java·spring boot·后端
Tangyuewei16 小时前
给老 Spring 项目装个 AI Agent
java·人工智能·spring
她的男孩16 小时前
多租户和数据权限怎么共存?扒完拦截器注册链路,我找到 4 个隐蔽的坑
java·后端·架构
小溪学编程16 小时前
Java BufferedReader 详解:从基础用法到性能优化
java·python·性能优化
HZero.chen17 小时前
Java 匿名类简介
java·匿名类
用户31268748772017 小时前
Java 泛型擦除到底擦掉了什么?类型安全与桥接方法深度拆解
java
暖焰核心17 小时前
继承全解——继承、默认成员函数、切片、隐藏与虚继承
java·前端·javascript
君顾117 小时前
外卖CPS系统开发实战指南:从架构设计到部署全流程解析
java·开发语言·外卖