项目介绍

项目经历

场馆预约⽹站

网站分为用户端和管理员端

用户端

提供注册、登录、个人信息管理、场馆预约、查看新闻、留言管理等功能

1.用户注册


昵称、用户名、密码设置为必填项,并且有字数限制,设计如下测试用例针对注册功能进行测试:

主要分为按要求正常注册和缺少必填项注册两种方法,执行测试用例符合预期结果。

2.用户登录


输入用户名和密码,进行登录。

针对注册和登录功能,采用自动化测试方法,脚本如下:

注册脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
package com.meethere.SystemFunctionalTesting;// Generated by Selenium IDE
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.IsNot.not;

import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
import org.openqa.selenium.By;
import org.springframework.core.annotation.Order;

@TestMethodOrder(MethodOrderer.Alphanumeric.class)
public class SignUpTest extends BaseTest {


@Test
@Order(1)
public void signUp_success() {
driver.get("http://localhost:8888/index");
assertThat(driver.getTitle(), is("MeetHere"));
driver.findElement(By.linkText("注册")).click();
assertThat(driver.getTitle(), is("注册-MeetHere"));
driver.findElement(By.id("userName")).click();
driver.findElement(By.id("userName")).sendKeys("testUser");
driver.findElement(By.id("userID")).click();
driver.findElement(By.id("userID")).sendKeys("test001");
driver.findElement(By.id("password")).click();
driver.findElement(By.id("password")).sendKeys("1234");
driver.findElement(By.id("submit")).click();
assertThat(driver.getTitle(), is("登录-MeetHere"));
driver.close();
}


@Test
@Order(2)
public void signUp_success_with_email() {
driver.get("http://localhost:8888/index");
assertThat(driver.getTitle(), is("MeetHere"));
driver.findElement(By.linkText("注册")).click();
assertThat(driver.getTitle(), is("注册-MeetHere"));
driver.findElement(By.id("userName")).click();
driver.findElement(By.id("userName")).sendKeys("testUser");
driver.findElement(By.id("email")).click();
driver.findElement(By.id("email")).sendKeys("976518101@qq.com");
driver.findElement(By.id("userID")).click();
driver.findElement(By.id("userID")).sendKeys("test002");
driver.findElement(By.id("password")).click();
driver.findElement(By.id("password")).sendKeys("1234");
driver.findElement(By.id("submit")).click();
assertThat(driver.getTitle(), is("登录-MeetHere"));
driver.close();
}


@Test
@Order(3)
public void signUp_success_with_phone() {
driver.get("http://localhost:8888/index");
assertThat(driver.getTitle(), is("MeetHere"));
driver.findElement(By.linkText("注册")).click();
assertThat(driver.getTitle(), is("注册-MeetHere"));
driver.findElement(By.id("userName")).click();
driver.findElement(By.id("userName")).sendKeys("testUser");
driver.findElement(By.id("phone")).click();
driver.findElement(By.id("phone")).sendKeys("12345678912");
driver.findElement(By.id("userID")).click();
driver.findElement(By.id("userID")).sendKeys("test003");
driver.findElement(By.id("password")).click();
driver.findElement(By.id("password")).sendKeys("1234");
driver.findElement(By.id("submit")).click();
assertThat(driver.getTitle(), is("登录-MeetHere"));
driver.close();
}


@Test
@Order(4)
public void signUp_success_with_email_and_phone() {
driver.get("http://localhost:8888/index");
assertThat(driver.getTitle(), is("MeetHere"));
driver.findElement(By.linkText("注册")).click();
assertThat(driver.getTitle(), is("注册-MeetHere"));
driver.findElement(By.id("userName")).click();
driver.findElement(By.id("userName")).sendKeys("testUser");
driver.findElement(By.id("email")).click();
driver.findElement(By.id("email")).sendKeys("976518101@qq.com");
driver.findElement(By.id("phone")).click();
driver.findElement(By.id("phone")).sendKeys("12345678912");
driver.findElement(By.id("userID")).click();
driver.findElement(By.id("userID")).sendKeys("test004");
driver.findElement(By.id("password")).click();
driver.findElement(By.id("password")).sendKeys("1234");
driver.findElement(By.id("submit")).click();
assertThat(driver.getTitle(), is("登录-MeetHere"));
driver.close();
}


@Test
@Order(5)
public void signUp_fail_userId_exist() {
driver.get("http://localhost:8888/index");
assertThat(driver.getTitle(), is("MeetHere"));
driver.findElement(By.linkText("注册")).click();
assertThat(driver.getTitle(), is("注册-MeetHere"));
driver.findElement(By.id("userName")).click();
driver.findElement(By.id("userName")).sendKeys("testUser");
driver.findElement(By.id("userID")).click();
driver.findElement(By.id("userID")).sendKeys("admin");
driver.findElement(By.id("password")).click();
driver.findElement(By.id("password")).sendKeys("admin");
assertThat(driver.findElement(By.id("alertId")).getText(), is("用户名已被占用,请重新输入!"));
driver.close();
}


@Test
@Order(6)
public void signUp_fail_userId_is_null() {
driver.get("http://localhost:8888/index");
assertThat(driver.getTitle(), is("MeetHere"));
driver.findElement(By.linkText("注册")).click();
assertThat(driver.getTitle(), is("注册-MeetHere"));
driver.findElement(By.id("userName")).click();
driver.findElement(By.id("userName")).sendKeys("testUser");
driver.findElement(By.id("password")).click();
driver.findElement(By.id("password")).sendKeys("1234");
driver.findElement(By.id("submit")).click();
assertThat(driver.getTitle(), is("注册-MeetHere"));
driver.close();
}


@Test
@Order(7)
public void signUp_fail_userName_is_null() {
driver.get("http://localhost:8888/index");
assertThat(driver.getTitle(), is("MeetHere"));
driver.findElement(By.linkText("注册")).click();
assertThat(driver.getTitle(), is("注册-MeetHere"));
driver.findElement(By.id("userID")).click();
driver.findElement(By.id("userID")).sendKeys("test001");
driver.findElement(By.id("password")).click();
driver.findElement(By.id("password")).sendKeys("1234");
driver.findElement(By.id("submit")).click();
assertThat(driver.getTitle(), is("注册-MeetHere"));
driver.close();
}


@Test
@Order(8)
public void signUp_fail_password_is_null() {
driver.get("http://localhost:8888/index");
assertThat(driver.getTitle(), is("MeetHere"));
driver.findElement(By.linkText("注册")).click();
assertThat(driver.getTitle(), is("注册-MeetHere"));
driver.findElement(By.id("userName")).click();
driver.findElement(By.id("userName")).sendKeys("testUser");
driver.findElement(By.id("userID")).click();
driver.findElement(By.id("userID")).sendKeys("test001");
driver.findElement(By.id("submit")).click();
assertThat(driver.getTitle(), is("注册-MeetHere"));
driver.close();
}


@Test
@Order(9)
public void signUp_fail_email_form_error() {
driver.get("http://localhost:8888/index");
assertThat(driver.getTitle(), is("MeetHere"));
driver.findElement(By.linkText("注册")).click();
assertThat(driver.getTitle(), is("注册-MeetHere"));
driver.findElement(By.id("userName")).click();
driver.findElement(By.id("userName")).sendKeys("testUser");
driver.findElement(By.id("email")).click();
driver.findElement(By.id("email")).sendKeys("976518101");
driver.findElement(By.id("userID")).click();
driver.findElement(By.id("userID")).sendKeys("test001");
driver.findElement(By.id("password")).click();
driver.findElement(By.id("password")).sendKeys("1234");
assertThat(driver.getTitle(), is("注册-MeetHere"));
assertThat(driver.findElement(By.id("alertEmail")).getText(), is("请输入正确的邮箱!"));
driver.close();
}


@Test
@Order(10)
public void signUp_fail_phone_form_error() {
driver.get("http://localhost:8888/index");
assertThat(driver.getTitle(), is("MeetHere"));
driver.findElement(By.linkText("注册")).click();
assertThat(driver.getTitle(), is("注册-MeetHere"));
driver.findElement(By.id("userName")).click();
driver.findElement(By.id("userName")).sendKeys("testUser");
driver.findElement(By.id("phone")).click();
driver.findElement(By.id("phone")).sendKeys("11111");
driver.findElement(By.id("userID")).click();
driver.findElement(By.id("userID")).sendKeys("test001");
driver.findElement(By.id("password")).click();
driver.findElement(By.id("password")).sendKeys("1234");
assertThat(driver.getTitle(), is("注册-MeetHere"));
assertThat(driver.findElement(By.id("alertPhone")).getText(), is("请输入正确的手机号!"));
driver.close();
}

}

登录脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package com.meethere.SystemFunctionalTesting;// Generated by Selenium IDE
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.CoreMatchers.is;


import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
import org.openqa.selenium.By;
import org.springframework.core.annotation.Order;

@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class LoginTest extends BaseTest {

@Order(1)
@Test
public void login_success_user() {
driver.get("http://localhost:8888/index");
assertThat(driver.getTitle(), is("MeetHere"));
driver.findElement(By.linkText("登录")).click();
assertThat(driver.getTitle(), is("登录-MeetHere"));
driver.findElement(By.id("userID")).sendKeys("test001");
driver.findElement(By.id("password")).click();
driver.findElement(By.id("password")).sendKeys("1234");
driver.findElement(By.id("submit")).click();
assertThat(driver.getTitle(), is("MeetHere"));
driver.close();
}

@Order(2)
@Test
public void login_fail_when_userId_is_null() {
driver.get("http://localhost:8888/index");
assertThat(driver.getTitle(), is("MeetHere"));
driver.findElement(By.linkText("登录")).click();
assertThat(driver.getTitle(), is("登录-MeetHere"));
driver.findElement(By.id("password")).click();
driver.findElement(By.id("password")).sendKeys("1234");
driver.findElement(By.id("submit")).click();
assertThat(driver.getTitle(), is("登录-MeetHere"));
driver.close();
}

@Order(3)
@Test
public void login_fail_when_user_not_exist() {
driver.get("http://localhost:8888/index");
assertThat(driver.getTitle(), is("MeetHere"));
driver.findElement(By.linkText("登录")).click();
assertThat(driver.getTitle(), is("登录-MeetHere"));
driver.findElement(By.id("userID")).sendKeys("user000");
driver.findElement(By.id("password")).click();
driver.findElement(By.id("password")).sendKeys("1234");
driver.findElement(By.id("submit")).click();
assertThat(driver.getTitle(), is("登录-MeetHere"));
assertThat(driver.findElement(By.cssSelector(".alert")).getText(), is("用户名或密码错误,请重新输入!"));
driver.close();
}

@Order(4)
@Test
public void login_fail_when_password_is_null() {
driver.get("http://localhost:8888/index");
assertThat(driver.getTitle(), is("MeetHere"));
driver.findElement(By.linkText("登录")).click();
assertThat(driver.getTitle(), is("登录-MeetHere"));
driver.findElement(By.id("userID")).sendKeys("test001");
driver.findElement(By.id("submit")).click();
assertThat(driver.getTitle(), is("登录-MeetHere"));
driver.close();
}

@Order(5)
@Test
public void login_fail_when_password_not_match() {
driver.get("http://localhost:8888/index");
assertThat(driver.getTitle(), is("MeetHere"));
driver.findElement(By.linkText("登录")).click();
assertThat(driver.getTitle(), is("登录-MeetHere"));
driver.findElement(By.id("userID")).sendKeys("user001");
driver.findElement(By.id("password")).click();
driver.findElement(By.id("password")).sendKeys("1");
driver.findElement(By.id("submit")).click();
assertThat(driver.getTitle(), is("登录-MeetHere"));
assertThat(driver.findElement(By.cssSelector(".alert")).getText(), is("用户名或密码错误,请重新输入!"));
driver.close();
}

@Order(6)
@Test
public void login_success_admin() {
driver.get("http://localhost:8888/index");
assertThat(driver.getTitle(), is("MeetHere"));
driver.findElement(By.linkText("登录")).click();
assertThat(driver.getTitle(), is("登录-MeetHere"));
driver.findElement(By.id("userID")).sendKeys("admin");
driver.findElement(By.id("password")).click();
driver.findElement(By.id("password")).sendKeys("admin");
driver.findElement(By.id("submit")).click();
assertThat(driver.getTitle(), is("MeetHere-管理系统"));
driver.close();
}
}

3.个人信息管理


登录成功后,可以点击个人头像,进行个人信息的更新。

4.场馆信息管理


5.场馆预约管理


由于同一场馆同一时间段只能接受一位用户的预约,需要测试不同用户预定时是否会有冲突,同时,过去的时间不能够接受预约,测试用例如下:

6.订单管理


用户端可以自行对订单日期进行修改,或者查看对应场馆的信息。

7.查看新闻

用户可点击新闻查看由管理员发布的新闻。

8.留言管理

用户可进入留言板进行留言,经管理员审核后可被其他用户看到。

管理员端

管理员的账号密码是固定的,只有一个管理员账号,登录成功后可进行提供全体用户信息、订单管理、留言审核等功能。

实习经历

清智优化(天津)科技有限责任公司

通过用友 YonBIPV3.0 开发水产信息化管理系统,主要负责服务费用明细节点的开发,统计当日花费的总费用和。首先根据需求文档画元数据,然后在平台上通过元数据进行低代码开发。由于是低代码开发,实际需要写代码的情况很少,主要做的就是从数据库中取数进行计算。在低代码平台上进行二次开发,完成每日计算各类服务费用总计等功能。后期实现推单、拉单等功能,与系统其他节点进行联动。

推单拉单的实现:
推单和拉单是指在软件系统中的两种不同的数据交互方式。

  1. 推单:推单是指将数据主动推送给接收方。在Java中,可以使用消息队列或者Web API来实现推单功能。

    • 消息队列:常见的消息队列系统有RabbitMQ、ActiveMQ和Kafka等。你可以使用这些消息队列系统来发送数据,接收方通过订阅消息队列来获取推送的数据。在Java中,你可以使用相应消息队列系统的Java客户端库进行开发。

      例如,使用RabbitMQ,你可以使用RabbitMQ的Java客户端库(如AMQP客户端库)来实现推单功能,发送方将数据发送到RabbitMQ队列中,而接收方通过订阅队列来获取推送的数据。

    • Web API:通过HTTP/HTTPS协议提供API接口,发送方将数据通过API接口发送给接收方。在Java中,你可以使用Java的网络编程来实现。

      例如,使用Spring框架可以轻松地实现一个具有RESTful API的Web应用,发送方可以向这个API发送数据,而接收方通过访问相应的API来获取推送的数据。

  2. 拉单:拉单是指接收方主动从发送方请求获取数据。在Java中,可以使用HTTP/HTTPS协议的客户端来实现拉单功能。

    你可以使用Java的网络编程来实现HTTP/HTTPS客户端,通过发送GET或者POST请求到发送方的API接口,然后获取相应的数据。常见的Java库有Apache HttpClient、OkHttp等,它们提供了方便的API让你可以轻松地实现拉单功能。

总结而言,在Java中实现推单拉单功能的方法有两种:使用消息队列或者使用Web API。具体的选择取决于系统的需求和你的技术栈。

抖音集团内容质量与用户体验平台

  • 大模型的学习需要大量的语料数据,主要工作是为人工智能机器学习提供语料校对和质量检查;按时交付优质合格的数据,对校对结果质量负责。

  • 主要负责 AI 语料库的建设,保证语料数据的准确率,跟进数据采集.质检和验收流程,不断规范相关语料标注的标准及流程;收集客户的产品交互服务等资料,对资料进行整合与编辑.

  • 对模型输出的数据进行评估,并撰写相关评估标准及结果文档;依据产品需求,对标注数据进行总结、分析,定期总结标注经验,提供标注工具的使用完善建议。

-------------本文结束感谢阅读-------------